实体框架更新数据库

时间:2018-11-09 20:39:31

标签: vb.net entity-framework-6

使用Entity Framework 6(采用代码优先方法),如果数据库不是最新的,则会出现异常

  

System.InvalidOperationException:“自创建数据库以来,支持'xxx'上下文的模型已更改。

是否可以检查数据库是否为最新版本,如果不是,则可以从应用程序内部将数据库更新为最新版本?

2 个答案:

答案 0 :(得分:0)

使数据库与EF模型保持最新是至关重要的。

对于您对上下文模型所做的每次更改,都必须迁移到数据库。

要维护模型和数据库之间关系的完整性,您必须:

  1. Add-Migration migrationName_versionx.x.x
  2. Update-Database

您遇到的System.InvalidOperationException:异常告诉您模型尚未迁移到数据库中。这意味着EF无法正常处理您可能遇到的查询。

您的数据库将保留一个迁移历史记录,可用于验证完整性。如果您有疑问,只需应用一个新的迁移,看看是否有任何更改。

答案 1 :(得分:0)

这可以通过DBMigrator类使用

Dim migrator = New DbMigrator(new migrations.Configuration())
migrator.Update()