是否可以使用两列作为鉴别符。例如,类似:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Job>()
.HasDiscriminator<string>("Type")
.HasValue<Models.SpecificJob>("attack");
modelBuilder.Entity<Job>()
.HasDiscriminator<string>("Domain")
.HasValue<Models.SpecificJob>("fire_nation");
}
现在,似乎只需要最后一个鉴别符,而忽略了第一个鉴别符。
答案 0 :(得分:2)
不。鉴别符指示子类型,并且EF(和.NET)不支持Multiple Inheritence。
但是您可以(并且应该)只使用普通属性,一个用于“类型”,一个用于“域”。
您可以为实体的已过滤子集添加“字母”。 EG:
class Db : DbContext
{
public DbSet<Job> Jobs { get; set; }
public IQueryable<Job> AttackJobs => Jobs.Where(j => j.Type == "attack");
public IQueryable<Job> FireNationJobs => Jobs.Where(j => j.Domain == "fire_nation");
. . .