带有可为空鉴别器的 EF Core HasDiscriminator

EF Core HasDiscriminator with nullable discriminator

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

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

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

通过将 属性 bool IsManagerSchedule 放在 Schedule 上,然后使用 .HasValue<ManagerSchedule>(true).HasValue<EmployeeSchedule>(false);.

解决了这个问题

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

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

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