0

Ich versuche zu spezifizieren, dass ich bereits einen Diskriminator auf der Entität habe, aber bin mir nicht sicher, wie man es hier darstellt.EF Core HasDiscriminator mit Nullable Discriminator

Der Diskriminator zwischen ihnen ist, ob eine Spalte null ist oder nicht. Offensichtlich der Fall, in dem es null ist, kann ich das explizit sagen, aber was mache ich für den Fall, wo es nicht ist?

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

Antwort

1

es wird gelöst, indem die Eigenschaft bool IsManagerSchedule auf Schedule setzen, und dann .HasValue<ManagerSchedule>(true).HasValue<EmployeeSchedule>(false); verwenden.

0

Versuchen Sie, die manuelle Konfiguration zu entfernen und dann:

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

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