项目安装了NuGet后,也执行了安装EF,
NuGet 命令:
NuGet
PM> install-package entityframework 已安装“EntityFramework 5.0.0”。 MvcStudy 已具有对“EntityFramework 5.0.0”的引用。
当执行enable migration的时候,出现了错误:
NuGet
PM> enable-migrations No context type was found in the assembly 'MvcStudy'.
找了网上,没有找到答案,想想根据错误信息,肯定是数据库问题,开始找了:
1.连接字符串,在Web.Config里面有啊
2.DB数据文件,还没有产生
3.错误信息中提到的No Context,应该是EF连接数据库的Context吧
想想,刚刚新建了Class(MOdel),没有什么Context啊,那DB的Context应该在哪创建呢,
先创建Controller吧,
习惯的一路选,咦,这个是什么呢?“数据上下文类”?什么来的,看看有什么可以选的,
啊,有“新建上下文类”哦,
玩玩看,随便起一下名字吧,
添加完成后,可以看到在Model里面多了一个DBContext的文件哦,看起来,很像是连接DB的东东了。
这样,Context有了,应该Enable可以了吧,试下,
NuGet
PM> enable-migrations 正在检查上下文的目标是否为现有数据库... 检测到使用数据库初始值设定项创建的数据库。已搭建与现有数据库对应的迁移“201303201607365_InitialCreate”的基架。若要改用自动迁移,请删除 Migrations 文件夹并重新运行指定了 -EnableAutomaticMigrations 参数的 Enable-Migrations。 已为项目 MvcStudy 启用 Code First 迁移。 PM> add-migration initial 正在为迁移“initial”搭建基架。 此迁移文件的设计器代码包含当前 Code First 模型的快照。在下一次搭建迁移基架时,将使用此快照计算对模型的更改。如果对要包含在此迁移中的模型进行其他更改,则您可通过再次运行“Add-Migration 201303201609346_initial”重新搭建基架。 PM> update-database 指定“-Verbose”标记以查看应用于目标数据库的 SQL 语句。 正在应用基于代码的迁移: [201303201609346_initial]。 正在应用基于代码的迁移: 201303201609346_initial。 正在运行 Seed 方法。
果然可以了,
谢天谢地,睡去了....
备注一下NuGet命令:
NuGet
1 install-package entityframework 2 3 enable-migrations 4 5 add-migration initial 6 7 update-database