EF迁移忽略数据更改

问题描述 投票:0回答:1

我有一个初始数据库迁移。现在我需要创建第一个增量迁移。当我创建第一个增量迁移时

add-migration Incremental1

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

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

是否有一些设置仅用于生成表更改(添加/删除列)并忽略所有数据更改(插入的数据行)?

.net-core ef-migrations
1个回答
0
投票

解决方案是:

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

在此之后,种子数据不再是模型快照(qazxsw poi文件)的一部分,因此不再由迁移跟踪。

这也意味着下一次增量迁移将不包含任何<Database>ModelSnapshot.cs / DeleteData语句。

© www.soinside.com 2019 - 2024. All rights reserved.