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