如何在Entity Framework Core 3.1的模型生成器中使用继承的类?
这是我的基础课:
public class Company
{
public Company()
{
Addresses = new List<Address>();
Contacts = new List<Contact>();
}
[Required]
public string Code { get; set; }
[Required]
[StringLength(50)]
public string FullName { get; set; }
[DataType(DataType.Url)]
public string WebsiteURL { get; set; }
public ICollection<Address> Addresses { get; set; }
public ICollection<Contact> Contacts { get; set; }
}
这是我的类,它是从is继承的:
public class Organisation : Company
{
public Organisation() : base()
{
}
public string OrganisationMasterCode { get; set; } = $"Something unique";
}
这是我的模型构建器,由于无法访问地址和联系人,因此无法使用:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// Company is fine:
modelBuilder.Entity<Company>().HasMany(i => i.Addresses).WithOne(i => i.Company);
modelBuilder.Entity<Company>().HasMany(i => i.Contacts).WithOne(i => i.Company);
// Below i.Organisation does not work
modelBuilder.Entity<Organisation>().HasMany(i => i.Addresses).WithOne(i => i.Organisation);
modelBuilder.Entity<Organisation>().HasMany(i => i.Contacts).WithOne(i => i.Organisation);
}
ModelContext.cs(61,90):[CS1061]“地址”不包含“组织”的定义,并且无法找到接受“地址”类型的第一个参数的可访问扩展方法“组织”缺少using指令或程序集引用?)
ModelContext.cs(62,89):[CS1061]“联系人”不包含“组织”的定义,并且无法找到接受类型为“联系人”的第一个参数的可访问扩展方法“组织”缺少using指令或程序集引用?)