使用 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.
我正在使用 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.