找不到System.Data.Entity.DataBase

时间:2011-06-11 12:42:00

标签: asp.net-mvc entity-framework

我在DataBase中找不到System.Data.Entity

任何人都知道为什么?

谢谢。

6 个答案:

答案 0 :(得分:22)

您无需导入System.Data.Entity.DatabaseSystem.Data.Entity就够了。 使用Database.SetInitializer代替DbDatabase.SetInitializer

如果您错过了它,该类称为数据库而没有“Db”

答案 1 :(得分:8)

您需要引用EntityFramework.dll程序集,该程序集是声明Database类的位置。您可以从相应的NuGet package安装它。

答案 2 :(得分:3)

我有同样的问题。 Daz和Darin的回答给了我一些线索。

在CTP中,类名称在System.Data.Entity.Database命名空间中称为“DbDatabase”。

但在我的EF 4.1版本中,该类名为“Database”,位于System.Data.Entity中。 System.Data.Entity.Database命名空间至少在EF4.1中消失了

答案 3 :(得分:1)

猜测,您已从Enterprise Library 4 CTP5升级到Enterprise Library 4.1。

命名空间稍有改动,现在您将在不同的命名空间中找到所需的类。如Kasper Skov在此处的回答所示,DbDatabase班级现在位于System.Data.Entity,并重命名为Database

我还没有找到IConfigurationConvention移动到的地方,因为System.Data.Entity.ModelConfiguration.Conventions.Configuration是另一个已失效的命名空间。

答案 4 :(得分:0)

在我的版本上,Entity Framework 4.1.10715.0',System.Data.Entity.Database是命名空间而不是类。 DbDatabase是该命名空间中的一个类,它包含SeInitializer方法。当我读到的所有内容与此相矛盾时,PITA会发现什么。

我必须使用以下内容来获取Steven Sanderson演示版以重新制作我的数据库。

System.Data.Entity.Database.DbDatabase.SetInitializer(
    new System.Data.Entity.Database.DropCreateDatabaseIfModelChanges<Mvc3ScaffoldDemo.Models.Mvc3ScaffoldDemoContext>());

答案 5 :(得分:0)

只需更新您的实体框架,只需右键单击解决方案并选择&#34;管理NuGet包&#34;并使用&#34; EntityFramework&#34;进行搜索。安装最新版本(6.1.3或)或使用&#34; NuGet包控制台&#34; enter image description here