我在玩机智EF Core 2.1 预览 2。
我在使用 HasData (Seed) 方法时遇到问题OnModelCreating(ModelBuilder modelBuilder)
我的模型是简单的 POCO 类,没有注释。
public class Tenant {
public int TenantID {get; set;}
public string Name {get; set;}
}
in my DbContext
inside OnModelCreating
方法是数据库模型定义为
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",
}
});
在 startap 期间,当 ctx.Database.Migrate() 运行时,出现异常:
无法添加实体类型“Tenant”的种子实体,因为没有为所需属性“TenantID”提供值
这个例外有点误导。内部必须有某种机制来测试所需的属性,因此它们必须与默认值不同。
我要做的唯一改变是指定TenantID != 0
.
modelBuilder.Entity<Tenant>().HasData(new []{
new Tenant {
TenantID = 1, // Must be != 0
Name = "SystemTenant",
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)