Entity framework EF 5.0在反向工程数据库上的迁移。无法更新模型更改,因为表已存在
我正在使用EF power tools for EF5.0的Beta 3对现有数据库进行反向工程 当我首先从项目上下文菜单中选择反向工程代码时,我得到了所有模型和DBContexts+映射。一切看起来都很好 我在反向工程过程完成后立即成功地启用了迁移 但是,我想向其中一个模型添加一个新属性。添加新属性后 我运行PM>添加迁移AddMyPropertyToMyTable 创建一个迁移文件 如果我尝试PM>更新数据库 我得到一个错误,告诉我这些表已经存在 我在这里学习教程:> 为什么我会犯这个错误?当然这张桌子是存在的,我只是对它进行了反向工程 我应该在逆向工程后删除数据库吗?或者,对于反向工程数据库,我是否必须对实际数据库进行更改,然后重新对其进行工程设计,以便在我的项目中获得所需的更改?那么反向工程首先有什么意义Entity framework EF 5.0在反向工程数据库上的迁移。无法更新模型更改,因为表已存在,entity-framework,entity-framework-5,entity-framework-migrations,Entity Framework,Entity Framework 5,Entity Framework Migrations,我正在使用EF power tools for EF5.0的Beta 3对现有数据库进行反向工程 当我首先从项目上下文菜单中选择反向工程代码时,我得到了所有模型和DBContexts+映射。一切看起来都很好 我在反向工程过程完成后立即成功地启用了迁移 但是,我想向其中一个模型添加一个新属性。添加新属性后 我运行PM>添加迁移AddMyPropertyToMyTable 创建一个迁移文件 如果我尝试PM>更新数据库 我得到一个错误,告诉我这些表已经存在 我在这里学习教程:> 为什么我会犯这个错误?
本教程中是否缺少一些内容,即在模型更改后使数据库可更新所需的额外步骤?当您使用现有数据库启用迁移时,EF没有添加u MigrationHistory表或初始迁移DbMigration文件 您可以在package manager控制台中使用以下命令添加初始迁移:
Add-Migration Initial -IgnoreChanges
这将是一个空的初始迁移。然后,要强制EF创建_MigrationHistory表,可以使用:
update-database
然后应在系统表下创建uu MigrationHistory表
现在,通过在migrations文件夹下的Configuration.cs文件中配置,您应该能够进行模型更改、创建新迁移文件或使用自动迁移
您可以使用update database手动运行这些迁移更改,或者在应用程序启动时使用MigrateDatabaseToLatestVersion初始值设定项将数据库自动迁移到最新的迁移
例如,您可以在app.config/web.config中进行设置,这样就不会在生产环境中进行设置