我正在使用实体,C#和SQL Server来创建一个n层应用程序 . 我正在创建一些我所有DAL组件共有的基类 . 在这个基类中,我想处理实体对象继承的ObjectContext基类的连接状态 .
编译会引发以下错误:
名称空间'System.Data'中不存在类型或命名空间名称'Objects'(您是否缺少程序集引用?)
此外,using语句System.Data.Objects因同样的原因无法解析 .
我尝试添加程序集作为参考,但在程序集引用的.NET选项卡中找不到它 .
有什么想法吗?谢谢!
8 回答
您需要添加对.NET程序集System.Data.Entity.dll的引用 .
如果您使用的是Entity Framework 6,则名称空间已更改 . 你想用
从EF5升级到EF6 nuget一段时间后再次遇到这个问题 . 我通过更新生成的代码来引用
System.Data.Entity.Core.Objects
来临时修复它,但是在生成之后它会再次被改回(正如预期的那样生成它) .这解决了问题:
http://msdn.microsoft.com/en-us/data/upgradeef6
VS 2013中的问题相同
我在Web.config中添加了:
它就像一个魅力 .
我在页面上找到了它:http://www.programmer.bz/Home/tabid/115/asp_net_sql/281/The-type-or-namespace-name-Objects-does-not-exist-in-the-namespace-SystemData.aspx
如果你想使用“System.Data.Objects.EntityFunctions”
在EF 6.1中使用“System.Data.Entity.DbFunctions”
在我的情况下,对于EF 6,使用时:
作为此命令的一部分:
我收到了这个错误:
所以我最终不得不使用这个:
当然,您的匿名类型签名可能不同 .
HTH .
我添加了对.dll文件的引用,对于System.Data.Linq,上面的内容还不够 . 您可以在以下版本的各个目录中找到.dll .
System.Data.Linq C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ v3.5 \ System.Data.Linq.dll 3.5.0.0
System.Data.Linq C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ Profile \ Client \ System.Data.Linq.dll 4.0.0.0
您需要添加对.NET程序集System.Data.Linq的引用