one-to-one
związek z jawną właściwością FK (taką jak Twój PayGroup.SupervisorId
) nie jest obsługiwane.
Więc usuń tę właściwość z modelu:
public class PayGroup
{
public int Id { get; set; }
public virtual Employee Supervisor { get; set; }
}
i użyj następującego płynnego mapowania:
modelBuilder.Entity<PayGroup>()
.HasRequired(e => e.Supervisor)
.WithOptional()
.Map(m => m.MapKey("SupervisorId"));
WithOptional()
call określa dwie rzeczy. Po pierwsze, nie ma właściwości nawigacji odwrotnej w Employee
klasy, a po drugie, że FK jest opcjonalny (Allow Nulls = true
w tabeli).
Jeśli zdecydujesz się dodać właściwość odwróconej nawigacji
public class Employee
{
public string EmployeeId { get; set; }
public string FullName { get; set; }
public virtual PayGroup PayGroup { get; set; } // <=
}
zmień go na WithOptional(e => e.PayGroup)
.
Jeśli chcesz, aby było to wymagane (Allow Nulls = false
w tabeli), a następnie użyj odpowiedniego WithRequiredDependent
przeciążenie (zależne tutaj oznacza, że Employee
będzie zleceniodawcą i PayGroup
będzie zależnym ).