使用 EntityFramework Core 2.2 为具有数据库生成密钥的数据播种

Using EntityFramework Core 2.2 to seed data that has a database generated key

我正在使用 EF Core 2.2,使用代码优先方法。

我有我的实体class:

public class Client
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [Key]
    public int ClientID { get; set; }
    public string Name { get; set; }
}

我正在像这样播种我的数据:

var client = new Client { Name = "TestClient"};
modelBuilder.Entity<Client>().HasData(client);

但是我在尝试添加迁移时收到错误消息:

The seed entity for entity type 'Client' cannot be added because a non-zero value is required for property 'ClientID'. Consider providing a negative value to avoid collisions with non-seed data.

ClientID应该是自动生成的,我不想指定。是否有解决此问题的方法,或者此功能是否尚未实现?

对于种子数据,您必须指定密钥。否则它将不知道要确保哪条记录在那里。是documented here.