无法添加实体类型“ X”的种子实体,因为没有为必需的属性“ ..ID”提供值。 [英] The seed entity for entity type 'X' cannot be added because the was no value provided for the required property "..ID"
问题描述
我正在玩 EF Core 2.1 Preview 2 。
我在 OnModelCreating(ModelBuilder modelBuilder)
我的模型是
public class Tenant {
public int TenantID {get; set;}
public string Name {get; set;}
}
在我的 DbContext $ c中
OnModelCreating
方法内的$ c>是定义为
in my DbContext
inside OnModelCreating
method is DB model defined as
modelBuilder.Entity<Tenant>(e => {
e.HasKey(m => m.TenantID)
.HasName("PK_Tenants");
e.Property(m => m.TenantID)
.UseSqlServerIdentityColumn();
e.Property(m => m.Name)
.IsRequired()
.HasMaxLength(256);
}
和种子方法定义为:
modelBuilder.Entity<Tenant>().HasData(new []{
new Tenant {
TenantID = 0,
Name = "SystemTenant",
}
});
< hr>
在启动过程中,运行ctx.Database.Migrate()时,出现异常:
无法添加实体类型 Tenant的种子实体,因为存在没有为必需的属性'TenantID
During startap, when ctx.Database.Migrate() is run, I got exception: The seed entity for entity type 'Tenant' cannot be added because there was no value provided for the required property 'TenantID
该异常有点误导。内部必须有某种机制可以测试必需的属性,以便它们必须与默认值不同。
The exception is little bit misleading. There must be some mechanism inside, that tests required properties so they must be different to a default values.
我唯一要做的更改是指定 TenantID!= 0
。
The only change I had to do was specifying TenantID != 0
.
modelBuilder.Entity<Tenant>().HasData(new []{
new Tenant {
TenantID = 1, // Must be != 0
Name = "SystemTenant",
}
});
这篇关于无法添加实体类型“ X”的种子实体,因为没有为必需的属性“ ..ID”提供值。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!