实体框架4.1,找不到Load()方法?

时间:2011-04-24 19:28:41

标签: entity-framework entity entity-framework-4.1

好的,我打算用锤子敲打我的键盘。我本周末决定和EF一起玩,我在4.0开始了一个项目。我发现4.1已经出来所以我下载并安装了包。

想象一下,当我在dbExtensions中使用Load()方法并且无法找到它时,我感到很惊讶。所以我添加了对安装程序创建的EntityFramework二进制文件的引用,从项目中删除System.Data.Entity引用,重建,并说它

  

“类型   'System.Data.Objects.ObjectContext'是   在不是的程序集中定义   引用。您必须添加引用   汇编'System.Data.Entity,   版本= 4.0.0.0,文化=中立,   公钥= b77a5c561934e089' 。“

我试图重新生成我的模型,我尝试删除东西,我尝试通过使用直接引用4.1。什么都行不通。

我显然缺少一些基本的东西。我怎么告诉visual studio使用4.1框架?? !!

5 个答案:

答案 0 :(得分:28)

我设法通过添加以下内容找到缺少的.Load()函数:

using System.Data.Entity;

答案 1 :(得分:4)

实体框架4.1不是单独的版本。它仍然需要Entity Framework 4.0及其程序集,所以你不能从你的引用中删除System.Data.Entity.dll。此外,EFv4.1主要是关于新的DbContext API,所以除非您要从实体对象转换到POCO和DbContext,否则您将无法通过引用EntityFramework.dll获得任何优势(Include除外{ {1}})。

答案 2 :(得分:2)

从以下任一位置添加对System.Data.Entity.dll的引用:

GAC(添加参考对话框中的.Net标签)

C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.Entity.dll

答案 3 :(得分:1)

我遇到了同样的问题,但仍然不知道根本原因。

最后我使用了一些替代解决方案:

var query = from d ...  
query.Load();

(DbSet)context.myentity).Load();

请尝试。

答案 4 :(得分:0)

Ladislav的帖子很准确。为了添加更多细节,this ADO.Net team blog post解释了如何使用EF 4.1正确替换EF 4.0项目中的代码生成。

但是,在升级到4.1并使用DbContext(包括其他一些功能)后,我遇到了类似的问题,我也没有.Load()方法。我认为你在开始之前(不必要地)弄乱了参考文献时,我和在同一个地方。

查看上面的链接,让我知道它是否有帮助,如果找到缺失.Load()函数的解决方案,请务必告诉我们。