标签: ado.net

MetadataException:无法加载指定的元数据资源

突然间,我一直MetadataException在实例化我生成的ObjectContext类.App.Config中的连接字符串看起来是正确的 - 自上次工作以来没有改变 - 我尝试从底层数据库重新生成一个新模型(edmx文件)而没有任何变化.

有人有主意吗?

更多细节:我没有更改任何属性,我没有更改任何输出程序集的名称,我没有尝试在程序集中嵌入EDMX.我离开工作只等了10个小时,直到我回来.然后它不再工作了.

我试过重新创建EDMX.我试过重新创建这个项目.我甚至尝试从头开始重新创建数据库.没有运气,无论如何.

.net c# ado.net entity-framework

661
推荐指数
16
解决办法
45万
查看次数

如何查看实体框架生成的SQL?

如何查看实体框架生成的SQL?

(在我的特殊情况下,我正在使用mysql提供程序 - 如果它很重要)

ado.net entity-framework

587
推荐指数
18
解决办法
29万
查看次数

实体框架VS LINQ to SQL VS ADO.NET与存储过程?

你会如何评价每一个:

  1. 性能
  2. 发展速度
  3. 整洁,直观,可维护的代码
  4. 灵活性
  5. 总体

我喜欢我的SQL,因此一直是ADO.NET和存储过程的忠实粉丝,但我最近玩过Linq to SQL,并且被写出我的DataAccess层的速度和决定花费的速度感到震惊有一段时间真正理解Linq to SQL或EF ......或者两者都没有?

我只是想检查一下,这些技术中没有一个很大的缺陷会让我的研究时间变得毫无用处.例如,性能非常糟糕,对于简单的应用程序来说它很酷,但只能带你到目前为止.

更新: 您可以专注于EF VS L2S VS SP而不是ORM VS SP.我主要对EF VS L2S感兴趣.但我很想将它们与存储过程进行比较,因为普通的SQl是我所了解的很多东西.

sql ado.net linq-to-entities entity-framework linq-to-sql

424
推荐指数
4
解决办法
17万
查看次数

从App.config获取连接字符串

var connection = ConnectionFactory.GetConnection(
    ConfigurationManager.ConnectionStrings["Test"]
    .ConnectionString, DataBaseProvider);
Run Code Online (Sandbox Code Playgroud)

这是我的App.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <connectionStrings>
        <add name="Test" connectionString="Data Source=.;Initial Catalog=OmidPayamak;Integrated Security=True" providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

但是当我的项目运行时,这是我的错误:

你调用的对象是空的.

c# ado.net connection-string app-config exception-handling

368
推荐指数
8
解决办法
64万
查看次数

设置NOCOUNT ON使用情况

灵感来自这个问题,对于SET NOCOUNT有不同的看法......

我们应该为SQL Server使用SET NOCOUNT ON吗?如果没有,为什么不呢?

它的作用编辑6,2011年7月22日

它会在任何DML之后抑制"​​xx行受影响"消息.这是一个结果集,当发送时,客户端必须处理它.它很小,但可以测量(见下面的答案)

对于触发器等,客户端将收到多个"受影响的xx行",这会导致某些ORM,MS Access,JPA等出现各种错误(参见下面的编辑)

背景:

一般接受的最佳实践(我想直到这个问题)是SET NOCOUNT ON在SQL Server中的触发器和存储过程中使用.我们在任何地方都使用它,快速谷歌显示大量的SQL Server MVP也同意.

MSDN表示这可能会破坏.net SQLDataAdapter.

现在,这对我来说意味着SQLDataAdapter仅限于完全简单的CRUD处理,因为它希望"n行受影响"消息匹配.所以,我不能用:

  • 如果EXISTS避免重复(没有行影响消息)注意:请谨慎使用
  • 什么不存在(预期行数较少)
  • 过滤掉琐碎的更新(例如,没有数据实际更改)
  • 之前进行任何表访问(例如记录)
  • 隐藏复杂性或denormlisation
  • 等等

在问题marc_s(谁知道他的SQL的东西)说不要使用它.这与我的想法不同(我认为自己在SQL方面也有一定的能力).

有可能我错过了一些东西(随意指出明显的东西),但你们有什么想法呢?

注意:我看到这个错误已经好几年了,因为我现在不使用SQLDataAdapter.

在评论和问题后编辑:

编辑:更多想法......

我们有多个客户端:一个可以使用C#SQLDataAdaptor,另一个可以使用Java中的nHibernate.这些可能会以不同的方式受到影响SET NOCOUNT ON.

如果您将存储过程视为方法,那么假设某些内部处理以某种方式为您自己的目的而工作则是不好的形式(反模式).

编辑2:触发器打破nHibernate问题,SET NOCOUNT ON无法设置

(不,它不是一个重复的这个)

编辑3:更多信息,感谢我的MVP同事

编辑2011年5月13日

如果没有指定,还会破解Linq 2 SQL吗?

编辑2011年6月14日

使用表变量打破JPA,存储过程:JPA 2.0是否支持SQL Server表变量?

编辑6:2011年8月15日

SSMS"编辑行"数据网格需要SET NOCOUNT ON:使用GROUP BY更新触发器

编辑2013年3月7日7:07

来自@RemusRusanu的更深入的细节:
SET NOCOUNT …

sql t-sql sql-server concurrency ado.net

320
推荐指数
7
解决办法
25万
查看次数

将MySQL与Entity Framework结合使用

在Google上找不到与Entity Framework/MySQL相关的任何内容,所以我希望有人知道它.

.net mysql ado.net entity-framework

268
推荐指数
5
解决办法
14万
查看次数

你能从SqlDataReader获取列名吗?

连接到数据库后,我可以获取在我的所有列中返回的列的名称SqlDataReader吗?

c# ado.net sqldatareader

265
推荐指数
7
解决办法
21万
查看次数

实体框架和连接池

我最近开始在我的.NET 4.0应用程序中使用Entity Framework 4.0,并对与池化相关的一些事情感到好奇.

  1. 据我所知,连接池由ADO.NET数据提供程序管理,在我的情况下是MS SQL服务器.当您实例化新的实体context(ObjectContext)时,这是否适用,即无参数new MyDatabaseModelEntities()

  2. a)为应用程序创建全局实体上下文(即一个静态实例)或b)使用using块为每个给定操作/方法创建和公开实体上下文有哪些优点和缺点.

  3. 我应该了解的某些场景的任何其他建议,最佳实践或常用方法?

.net database ado.net entity-framework connection-pooling

264
推荐指数
3
解决办法
11万
查看次数

如何使用存储过程DbContext.Database.SqlQuery <TElement>(sql,params)?EF Code First CTP5

我有一个存储过程有三个参数,我一直在尝试使用以下命令返回结果:

context.Database.SqlQuery<myEntityType>("mySpName", param1, param2, param3);
Run Code Online (Sandbox Code Playgroud)

起初我尝试使用SqlParameter对象作为参数,但这不起作用并抛出SqlException以下消息:

过程或函数'mySpName'需要参数'@ param1',这是未提供的.

所以我的问题是你如何使用这个方法与期望参数的存储过程?

谢谢.

c# sql ado.net linq-to-entities entity-framework-ctp5

240
推荐指数
6
解决办法
30万
查看次数

在什么情况下SqlConnection会自动登记在环境TransactionScope事务中?

SqlConnection在事务中"登记"是什么意思?它只是意味着我在连接上执行的命令将参与事务吗?

如果是这样,在什么情况下SqlConnection会自动登记在环境TransactionScope事务中?

查看代码注释中的问题.我对每个问题的答案的猜测都在括号中的每个问题之后.

场景1:在事务范围内打开连接

using (TransactionScope scope = new TransactionScope())
using (SqlConnection conn = ConnectToDB())
{   
    // Q1: Is connection automatically enlisted in transaction? (Yes?)
    //
    // Q2: If I open (and run commands on) a second connection now,
    // with an identical connection string,
    // what, if any, is the relationship of this second connection to the first?
    //
    // Q3: Will this second connection's automatic enlistment
    // in the current transaction scope cause the transaction to …
Run Code Online (Sandbox Code Playgroud)

c# ado.net sqlcommand sqlconnection transactionscope

198
推荐指数
2
解决办法
3万
查看次数