使用EntityFramework Core 2.2播种具有数据库生成键的数据

时间:2019-02-21 15:09:57

标签: entity-framework-core ef-core-2.2 entity-framework-core-migrations

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

我有我的实体课:

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);

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

  

无法添加实体类型“客户”的种子实体,因为   属性“ ClientID”要求非零值。考虑提供   为负值,以避免与非种子数据冲突。

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

1 个答案:

答案 0 :(得分:2)

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