【问题标题】:Using EntityFramework Core 2.2 to seed data that has a database generated key使用 EntityFramework Core 2.2 播种具有数据库生成密钥的数据
【发布时间】:2019-07-15 13:20:41
【问题描述】:

我正在使用 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 应该是自动生成的,我不想指定它。是否有解决方法或此功能尚未实现?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-03
      • 2012-01-16
      • 2012-05-21
      • 1970-01-01
      • 2016-05-05
      • 1970-01-01
      相关资源
      最近更新 更多