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 ).