one-to-one Beziehung mit expliziter FK-Eigenschaft (wie Ihre PayGroup.SupervisorId ) wird nicht unterstützt.
Entfernen Sie also diese Eigenschaft aus dem Modell:
public class PayGroup
{
public int Id { get; set; }
public virtual Employee Supervisor { get; set; }
}
und verwenden Sie die folgende fließende Zuordnung:
modelBuilder.Entity<PayGroup>()
.HasRequired(e => e.Supervisor)
.WithOptional()
.Map(m => m.MapKey("SupervisorId"));
Der WithOptional() call gibt zwei Dinge an. Erstens gibt es in Employee keine umgekehrte Navigationseigenschaft Klasse, und zweitens, dass der FK optional ist (Allow Nulls = true in der Tabelle).
Wenn Sie sich entscheiden, eine inverse Navigationseigenschaft hinzuzufügen
public class Employee
{
public string EmployeeId { get; set; }
public string FullName { get; set; }
public virtual PayGroup PayGroup { get; set; } // <=
}
ändern Sie es in WithOptional(e => e.PayGroup) .
Wenn Sie es erforderlich machen möchten (Allow Nulls = false in der Tabelle), verwenden Sie dann das entsprechende WithRequiredDependent Überladung (Abhängig bedeutet hier, dass der Employee wird der Schulleiter sein und PayGroup wird der abhängige sein ).