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

10

我正在使用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个回答

15

如果使用种子数据,必须指定键值。否则它不知道要确保哪个记录存在。在此处有记录。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接