3

我的OnModelCreating方法上有这段代码:

// Users
modelBuilder.Entity<User>().ToTable(name: "Users", schema: "Core");
modelBuilder.Entity<User>().HasKey(x => x.Id);

// Seeder
modelBuilder.Entity<User>().HasData(MigrationSeeder.Seed());

当我生成迁移时,EF 创建插入操作如下:

migrationBuilder.InsertData(
    schema: "Core",
    table: "Users",
    columns: new[] { "Id", "FirstName", "LastName" },
    values: new object[] { "6c6aa94903a4", "Rick", "Sánchez" });

好的!

但是.. 当我生成另一个迁移时,EF 重复此插入操作(在删除行之前和之后,插入新行)

migrationBuilder.DeleteData(
    schema: "Core",
    table: "Users",
    keyColumn: "Id",
    keyValue: "6c6aa94903a4");

migrationBuilder.InsertData(
    schema: "Core",
    table: "Users",
    columns: new[] { "Id", "FirstName", "LastName" },
    values: new object[] { "d055353aa45c", "Rick", "Sánchez" });

如果与主表和数据库对应的此实体在另一个表中具有相关行。

如何避免在每次迁移中插入?

4

0 回答 0