CodeFirst 修改数据库报错:请考虑使用 Code First 迁移更新数据库

解决方法:

1.Vs2012->工具->库程序包管理器->程序包管理器控制台

2.

PM> Enable-Migrations
No context type was found in the assembly 'PurpleWind.SmallSecretary.MVC'.

检查继承DbContext的类是否在mvc的Models中。没有则放入其中,否则会报上面的错误。

如果Models里面有多个DbContext的文件

PM> Enable-Migrations
More than one context type was found in the assembly 'PurpleWind.SmallSecretary.MVC'.
To enable migrations for PurpleWind.SmallSecretary.MVC.Model.Entity.PMS.PMSContext, use Enable-Migrations -ContextTypeName PurpleWind.SmallSecretary.MVC.Model.Entity.PMS.PMSContext.
To enable migrations for PurpleWind.SmallSecretary.MVC.Model.Entity.XMS.XMSContext, use Enable-Migrations -ContextTypeName PurpleWind.SmallSecretary.MVC.Model.Entity.XMS.XMSContext.

3.

PM> Enable-Migrations -ContextTypeName PurpleWind.SmallSecretary.MVC.Model.Entity.XMS.XMSContext
正在检查上下文的目标是否为现有数据库...
检测到使用数据库初始值设定项创建的数据库。已搭建与现有数据库对应的迁移“201307010543301_InitialCreate”的基架。若要改用自动迁移,请删除 Migrations 文件夹并重新运行指定了 -EnableAutomaticMigrations 参数的 Enable-Migrations。
已为项目 PurpleWind.SmallSecretary.MVC 启用 Code First 迁移。

4.

PM> add-migration Initial
正在为迁移“Initial”搭建基架。
此迁移文件的设计器代码包含当前 Code First 模型的快照。在下一次搭建迁移基架时,将使用此快照计算对模型的更改。如果对要包含在此迁移中的模型进行其他更改,则您可通过再次运行“Add-Migration 201307030520135_Initial”重新搭建基架。

5.
PM> update-database
指定“-Verbose”标记以查看应用于目标数据库的 SQL 语句。
正在应用基于代码的迁移: [201307030520135_Initial]。
正在应用基于代码的迁移: 201307030520135_Initial。
正在运行 Seed 方法。

posted @ 2013-07-03 13:37  宋飞  阅读(449)  评论(0)    收藏  举报