首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EF 5.0在逆向工程数据库上的迁移。无法更新模型更改,因为表已存在

EF 5.0在逆向工程数据库上的迁移。无法更新模型更改,因为表已存在
EN

Stack Overflow用户
提问于 2013-04-19 01:40:31
回答 1查看 1.6K关注 0票数 2

我正在使用EF5.0的EF power tools的Beta 3来对现有数据库进行反向工程。

当我从项目上下文菜单中选择"Reverse engineer code first“时,我得到了所有的模型和DBContexts +映射。一切看起来都很好。

在逆向工程过程完成后,我立即成功启用了迁移。

但是,我想向其中一个模型添加一个新属性。在添加新属性之后,

我运行PM> Add-Migration AddMyPropertyToMyTable

创建迁移文件,

如果我随后尝试PM>更新-数据库

我收到一个错误,告诉我表已经存在。

我正在学习here:> http://msdn.microsoft.com/en-us/data/jj200620教程

为什么我会得到这个错误?这个表当然存在,我只是对它进行了反向工程

我是不是应该在逆向工程后删除数据库?或者,在逆向工程数据库的情况下,我是否必须对实际数据库进行更改,然后再对其进行反向工程,以便在项目中获得所需的更改(因此,逆向工程的首要目的是什么?)

本教程中是否遗漏了什么,即在模型更改后使数据库可更新所需的额外步骤?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-19 02:04:46

当您使用现有数据库启用迁移时,EF没有添加__MigrationHistory表或初始迁移(DbMigration)文件。

您可以通过在包管理器控制台中使用以下内容来添加初始迁移:

代码语言:javascript
复制
Add-Migration Initial -IgnoreChanges

这将是一个空的初始迁移。然后,要强制EF创建__MigrationHistory表,您可以使用:

代码语言:javascript
复制
update-database

这将创建__MigrationHistory表(在系统表下)

您现在应该能够进行模型更改,并创建新的迁移文件(或者通过在Migrations文件夹下的Configuration.cs文件中进行配置来使用自动迁移)。

您可以使用update-database手动运行这些迁移更改,或者使用MigrateDatabaseToLatestVersion初始化器在应用程序启动时将数据库自动迁移到最新的迁移。

例如,您可以在app.config/web.config中设置它,这样就不会在生产环境中设置它。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16089710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档