pen*_*ate 98 .net c# linq-to-entities entities visual-studio-2008
我正在使用实体,C#和SQL Server来创建一个n层应用程序.我正在创建一些我所有DAL组件共有的基类.在这个基类中,我想处理实体对象继承的ObjectContext基类的连接状态.
编译会引发以下错误:
名称空间'System.Data'中不存在类型或命名空间名称'Objects'(您是否缺少程序集引用?)
此外,using语句System.Data.Objects因同样的原因无法解析.
我尝试添加程序集作为参考,但在程序集引用的.NET选项卡中找不到它.
有什么想法吗?谢谢!
Jam*_*mes 51
如果您使用的是Entity Framework 6,则名称空间已更改.你想用
System.Data.Entity.Core.Objects.ObjectQuery
Run Code Online (Sandbox Code Playgroud)
Tim*_*ine 31
从EF5升级到EF6 nuget一段时间后仍然遇到这个问题.我通过更新生成的代码来引用它来临时修复它System.Data.Entity.Core.Objects,但是在生成之后它会再次被更改回来(正如预期的那样生成它).
这解决了这个问题:
http://msdn.microsoft.com/en-us/data/upgradeef6
如果您使用EF Designer创建了任何模型,则需要更新代码生成模板以生成与EF6兼容的代码. 注意:目前只有Visual Studio 2012和2013可用的EF 6.x DbContext Generator模板.
- 删除现有的代码生成模板.这些文件通常被命名为<edmx_file_name> .TT和<edmx_file_name> .Context.tt下在解决方案资源管理您的EDMX文件嵌套.您可以在解决方案资源管理器中选择模板,然后Del按键将其删除.
注意:在"网站"项目中,模板不会嵌套在edmx文件下,而是在"解决方案资源管理器"中与其一起列出.
注意:在VB.NET项目中,您需要启用"显示所有文件"才能看到嵌套的模板文件.- 添加适当的EF 6.x代码生成模板.在EF Designer中打开模型,右键单击设计图面并选择Add Code Generation Item ...
- 如果您使用的是DbContext API(推荐),那么EF 6.x DbContext Generator将在Data选项卡下可用.
注意:如果您使用的是Visual Studio 2012,则需要安装EF 6 Tools才能使用此模板.有关详细信息,请参阅Get Entity Framework.- 如果您使用的是ObjectContext API,则需要选择Online选项卡并搜索EF 6.x EntityObject Generator.
- 如果您将任何自定义应用于代码生成模板,则需要将它们重新应用于更新的模板.