EF Core HasDiscriminator具有可空的鉴别器

时间:2016-06-02 14:23:29

标签: c# entity-framework ef-code-first asp.net-core entity-framework-core

我试图指明我已经在实体上有一个鉴别器,但我不知道如何在这里表示它。

它们之间的鉴别器是列是否为空。显然,它是null的情况我可以明确地说明,但我怎么办呢?

protected override void OnModelCreating(ModelBuilder modelBuilder) {
    modelBuilder.Entity<Schedule>()
        .HasDiscriminator<Guid?>("ManagerId")
        .HasValue<EmployeeSchedule>(null)
        .HasValue<ManagerSchedule>(/* What goes here? */);
}

2 个答案:

答案 0 :(得分:1)

通过将bool IsManagerSchedule属性放在Schedule上,然后使用.HasValue<ManagerSchedule>(true).HasValue<EmployeeSchedule>(false);来解决此问题。

答案 1 :(得分:0)

尝试删除手动配置,然后:

public class EmployeeSchedule {
    // properties of all employees...
}

public class ManagerSchedule {
    public TYPE PropertyName {get; set;} // discriminator property
}