我想使用EF迁移在数据库中添加一些数据。事实是所有ID都是自动生成的。我找到了使用EF Core实现此目标的标准方法,如下所示:
modelBuilder.Entity<TypeNote>()
.HasData(
new TypeNote { Id = 1, Name = "General" },
new TypeNote { Id = 2, Name = "E-mail" },
new TypeNote { Id = 3, Name = "Meeting" },
new TypeNote { Id = 4, Name = "Reminder" },
new TypeNote { Id = 5, Name = "Telephone" },
new TypeNote { Id = 6, Name = "Visit" }
);
我的问题是我不想指定Id
,但似乎没有其他方法可以使用HasData
方法。
您知道使用迁移在数据库内部添加数据的另一种方法吗?
答案 0 :(得分:2)
我找到了一种在迁移过程中进行插入的方法:
migrationBuilder.InsertData(
table: "TypeNote",
columns: new[] { "Name" },
values: new object[,]
{
{ "Test" },
{ "Test1" }
});
事实是,我想在迁移过程中访问dbContext。这是不可能的,因为数据库正在更新。
答案 1 :(得分:0)
这是 HasData 的标准。自动生成的字段不会使用 HasData 方法生成。
答案 2 :(得分:0)
我认为您要查找的内容称为“种子数据”
请查看此Microsoft Doc,了解如何将种子数据添加到数据库中,并让我知道您是否正在寻找该内容。