使用EF Code First在Context和Database之间手动同步

时间:2013-07-18 19:01:46

标签: entity-framework ef-code-first code-first ef-migrations

我在VS 2012中使用EF 5.0(CodeFirst)。我更改了我的模型(实体)并手动更改了我的数据库。我尝试运行该应用程序,并出现以下错误:

  

支持'XXXContext'上下文的模型自更改以来已更改   数据库已创建。考虑使用Code First Migrations进行更新   数据库(http://go.microsoft.com/fwlink/?LinkId=238269)。

我唯一的变化是实体属性的名称(数据库中的列)。

  1. 自动化还是忽略同步?对于手动完成的操作,只有不识别它的应用程序。或运行验证手动同步的内容。
  2. 应用程序记录的同步信息在哪里知道有变化?
  3. 由于

1 个答案:

答案 0 :(得分:1)

您可以选择使用数据库初始化程序或迁移。在应用程序启动中,您可以使用以下命令启用初始化程序:

System.Data.Entity.Database.SetInitializer<YourDbContextType>(new DropCreateDatabaseIfModelChanges());

如果需要,您还可以创建自己的逻辑子类。有关详细信息,请参阅http://www.codeguru.com/csharp/article.php/c19999/Understanding-Database-Initializers-in-Entity-Framework-Code-First.htm

您还可以启用迁移并让它们自动更新您的数据库。在程序包管理器控制台中运行Enable-Migrations可以执行此操作。点击此处了解更多信息http://msdn.microsoft.com/en-us/data/jj591621.aspx