entity-framework-core - EF Core 数据播种(modelBuilder 上的 HasData 方法)不为 Identity 列插入数据
问题描述
我正在为具有 Id (Identity) 列的实体调用 HasData 方法(见下文),但在第一次运行迁移时没有数据插入到表中。
当 TestObject 模型没有使用 Id (Identity) 列作为主键时,在第一次运行迁移时会按预期插入数据。
EF Core 是否能够为标识列插入数据?
modelBuilder.Entity<TestObject>().HasData(
new TestObject
{
Id = 1,
TestValue = "Test 1"
}
解决方案
如果数据库中的 PK 列是标识列(由数据库服务器创建),则您无法插入值。它由数据库生成。
更新
正如下面评论中所指出的,EF Core 将在执行 HasData() 时调用“SET IDENTITY INSERT ON”。
https://www.learnentityframeworkcore.com/configuration/fluent-api/hasdata-method
推荐阅读
- javascript - 如何以角度实现队列?
- javascript - 如何向我的 Electron 应用程序添加自定义 chrome 扩展?
- python - BeautifoulSoup4 从源代码中提取标题
- c# - 在菜单中隐藏多余的 ToolStripSeparator
- javascript - 为什么在ajax之后jquery removeClass to button仍然可以正常工作?
- swift - 使用 Decodable 通过 Firestore 获取对象和文档 ID
- r - ggplot中的年度超标概率标度
- google-sheets - 根据另一个工作表中的范围创建列表
- mysql - 有什么不同?
- r - 根据单元格值使用 kableExtra 为行着色