Entity Framework中DBContext、DBSet<>的参考资料

22
我正在尝试使用最新的Entity Framework 4.0的ADO.Net Codefirst功能。为此,我已经从Microsoft安装了Entity Framework CTP 4,并使用Scott's tutorial来首先创建模型。在教程中指定了DBContextDBSet<>。请问要使用哪个引用才能访问这个类?
我已经使用了以下引用,但是对于DBContextDBSet<>没有任何反应。
  • System.Data.Entity
  • System.Data.Entity.Design
7个回答

25
你可以使用库包管理器(Library Package Manager),如果你有它的话(它会随着MVC 3.0自动安装)。从Visual Studio 2010中的项目中,进入:
Tools > Library Package Manager > Package Manager Console

在Visual Studio 2013中,从您的项目内部进行以下操作:

Tools > NuGet Package Manager > Package Manager Console
在控制台中,在PM>提示后,输入
install-package entityframework

这将安装该软件包并将EntityFramework引用添加到您的项目中。


安装程序包:无法找到“entityframework”包。在第1行字符:1...有任何想法为什么? - brntsllvn
看了一下 NuGet-Solution 包管理器,我发现已经安装了 EntityFramework(v6.0.2)...但 DbContext 仍然找不到。任何帮助都将不胜感激。 - brntsllvn

14
请使用新版本的API,即CTP5。您需要添加对EntityFramework.dll的引用,该文件位于CTP目录中安装的位置,默认路径为32位系统:c:\Program Files\Microsoft ADO.NET Entity Framework Feature CTP5\Binaries\EntityFramework.dll。在64位系统上,它将被放置在Program Files (x86)中。

1
请问这个软件会支持64位的.Net版本吗? - manu
2
不再使用之前的方法了。现在您只需要使用NuGet命令Install-Module entityframework。 - Teun D
@TeunD:是的,您可以将其作为单独的答案发布。对于OP提出的版本,这个答案非常有效... - Ladislav Mrnka
你可以通过Nuget安装EntityFramework包,而不是手动引用entityframework.dll。 - Rowinson Gallego
帖子已经有些年头了...但现在我认为链接已经失效了。 - Sandy

4

使用 "DbContext" 而不是 "DBContext",以及使用 "DbSet" 而不是 "DBSet"。大小写敏感是问题所在。


1
Thomas,我只是规定了代码,而不是复制和粘贴。我在我的代码中使用了正确的大小写,因为它是从原始教程中复制的。无论如何,感谢您让我知道关键字的大小写不正确。干杯! - manu
那就是了...我犯了错误。 - Bimal Das

3

要将EF添加到您的项目中,请使用包管理器控制台并执行以下命令:

Install-Package EntityFramework

作为另一个答案中提到的,你不应直接链接到DLL的安装位置。


1

这篇博客提到了程序集:

上面使用的DbContext和DbSet类是EF4 Code-First库的一部分。您需要添加对安装在\Program Files\Microsoft ADO.NET Entity Framework Feature CTP4\Binaries目录中的System.Data.Entity.CTP程序集的引用才能引用这些类。您还需要在“NerdDinners”类文件的顶部添加“using System.Data.Entity”命名空间语句。

然而,我相信新的CTP5对CodeFirst进行了一些更改,因此建议查看该版本。


请问这个软件支持64位的.Net版本吗? - manu
我不确定 CTP 中是否有 64 位元程序集。如果没有,你的项目将需要以 x86 为目标。 - Yannick Motton

1
我正在按照 MvcMusicStore 教程学习编程(使用 Mvc 4 而非 Mvc 3)。在第四部分中,我遇到了问题,参见http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-4。当我添加以下引用using System.Data.Entity;时,出现了以下错误:the type or namespace name 'entity' does not exist in the namespace 'system.data'。@Fecklmore的解决方法对我很有帮助。通过转到工具 > 库程序包管理器 > 包管理器控制台打开包管理器控制台。然后输入以下内容:Install-Package EntityFramework。这将为您的项目安装EntityFramework(即EF),并消除上述错误。

0
如果您正在使用.NET 3.5,则将目标框架更改为.NET 4.0。

非常感谢@Arek Bee,我已经使用了.Net 4.0,但由于某些原因,实体的引用不在那里。后来安装了CTP5之后一切都正常了。 - manu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接