EF 6.1.3自动迁移

时间:2015-03-21 02:22:53

标签: entity-framework ef-code-first

当我首先通过代码执行数据库操作时,我创建了一个初始迁移到我的数据库。

所有表格都已成功创建。

我已成功启用自动迁移功能。

我在模型中添加了几列。

当我运行“Update-Database -Verbose”时,我收到一条错误消息(我明白,但现在不知道它为什么会出现)“已经有一个名为'Categories'的对象数据库。

在初始迁移中创建了“类别”表以及所有其余表格(如上所述)。

我做了一个更改(将另外两列添加到另一个模型(Customer)。

我认为,Code First迁移只会查看整个DBSet模型,确定更改的内容,然后只需应用必要的SQL。相反,它正在尝试再次创建已存在的Categories表。

有人可以向我解释如何在不发生这种情况的情况下简单地更新数据库吗?我做错了什么或者我需要做些什么才能让它发挥作用......

修改

成功创建EF代码优先迁移设置:

  • 启用 - 迁移-EnableAutomaticMigrations
    • Add-Migration Initial(创建_Initial.cs文件)。
    • 在Migrations文件夹中的_Initial.cs文件中注释掉代码 您不想在初始数据库运行后执行以创建表的代码。
    • 将Configuration.cs文件设置为公共访问
    • 在Global.asax文件中添加以下代码
    Database.SetInitializer(new 
        MigrateDatabaseToLatestVersion());
  • 更新 - 数据库 - 详细(对于任何数据库更改)
    • 设置“AutomaticMigrationDataLossAllowed = true;”在Configuration.cs中 迁移文件夹中的文件。 (对于任何数据库更改)

0 个答案:

没有答案