2014-10-08 61 views
1

当我运行我的应用程序时,它说自从创建数据库以来,支持我的上下文的模型已更改。手动更新数据库,支持上下文的EF complians模型已更改

我添加一个字段,我的模型,如:

public int? LocationId {get;set;} 

我添加了一个int列的数据库,它可为空。

我知道数据库有_migrationsHistory表,现在不同步。

我到目前为止在QA中所做的一切就是放弃所有表格,然后运行只为我自动重新创建数据库的应用程序。

现在我想保留表中的数据,我该如何解决这个问题?

我添加了列,所以它应该工作,但是如果它在启动期间执行验证失败。

我有什么选择?

回答

1

这听起来像你想使用Code-First Migrations(EF 4.3及更高版本)

这将允许您根据通过包管理器控制台更改模型来生成迁移文件。

您可以使用add-migration <name>生成迁移文件,如果需要更改它并使用update-database手动更新。

如果您无意中破坏某些东西,还可以回退到任何迁移点。

+0

谢谢我这样做,但在生产中我无法从笔记本电脑连接到数据库,所以它会在应用程序启动过程中运行迁移? – 2014-10-09 14:00:27

+0

不默认,但我认为这会帮助你http://stackoverflow.com/questions/10848746/using-entity-framework-code-first-migrations-in-production – 2014-10-09 15:35:27

相关问题