EF迁移会忽略数据更改

时间:2019-03-21 10:47:31

标签: .net-core ef-migrations

我已经进行了初始数据库迁移。现在,我需要创建第一个增量迁移。当我使用

创建第一个增量迁移时
add-migration Incremental1

它不仅包含表更改,还包含所有数据更改。例如,对于在表之间添加的行,它包含DeleteData命令:

migrationBuilder.DeleteData(
            table: "SystemResources",
            keyColumn: "Id",
            keyValue: 1);

是否存在仅生成表更改(添加/删除的列)和忽略所有数据更改(插入的数据行)的设置?

1 个答案:

答案 0 :(得分:0)

解决方案是:

  1. 通过注释掉所有modelBuilder.Entity<T>().HasData语句来禁用数据播种,
  2. 使用add-migration创建增量迁移,
  3. 手动从增量迁移中删除所有DeleteData / InsertData命令,
  4. 运行update-database

此后,种子数据不再是模型snapshopt(<Database>ModelSnapshot.cs文件)的一部分,因此不再被迁移跟踪。

这也意味着下一次增量迁移将不包含任何DeleteData / InsertData语句。