EF Core Data Seeding(模型构建器上的 HasData 方法)未插入 Identity 列的数据

Mik*_*e . 5 entity-framework-core entity-framework-migrations

我正在为具有 Id(身份)列的实体调用 HasData 方法(见下文),但迁移第一次运行时没有数据插入到表中。

当 TestObject 模型未使用 Id(身份)列作为主键时,首次运行迁移时将按预期插入数据。

EF Core 是否能够为 Identity 列插入数据?

modelBuilder.Entity<TestObject>().HasData(
            new TestObject
            {
                Id = 1,
                TestValue = "Test 1"
            }
Run Code Online (Sandbox Code Playgroud)

Nei*_*l W 4

如果数据库中的 PK 列是标识列(由数据库服务器创建),则无法插入值。它是由数据库生成的。

更新

正如下面的评论所指出的,EF Core 在执行 HasData() 时将调用“SET IDENTITY INSERT ON”。

https://www.learnentityframeworkcore.com/configuration/ Fluent-api/hasdata-method