one-to-one
relation med explicit FK-egenskap (som din PayGroup.SupervisorId
) stöds inte.
Så ta bort den egenskapen från modellen:
public class PayGroup
{
public int Id { get; set; }
public virtual Employee Supervisor { get; set; }
}
och använd följande flytande mappning:
modelBuilder.Entity<PayGroup>()
.HasRequired(e => e.Supervisor)
.WithOptional()
.Map(m => m.MapKey("SupervisorId"));
WithOptional()
samtalet anger två saker. För det första att det inte finns någon invers navigationsegenskap i Employee
klass, och för det andra att FK är valfritt (Allow Nulls = true
i tabellen).
Om du bestämmer dig för att lägga till omvänd navigeringsegenskap
public class Employee
{
public string EmployeeId { get; set; }
public string FullName { get; set; }
public virtual PayGroup PayGroup { get; set; } // <=
}
ändra det till WithOptional(e => e.PayGroup)
.
Om du vill göra det obligatoriskt (Allow Nulls = false
i tabellen), använd sedan motsvarande WithRequiredDependent
överbelastning (beroende betyder här att Employee
kommer att vara rektor och PayGroup
kommer att vara beroende ).