one-to-one
връзка с изрично FK свойство (като вашия PayGroup.SupervisorId
) не се поддържа.
Така че премахнете това свойство от модела:
public class PayGroup
{
public int Id { get; set; }
public virtual Employee Supervisor { get; set; }
}
и използвайте следното плавно картографиране:
modelBuilder.Entity<PayGroup>()
.HasRequired(e => e.Supervisor)
.WithOptional()
.Map(m => m.MapKey("SupervisorId"));
WithOptional()
call уточнява две неща. Първо, няма свойство за обратна навигация в Employee
клас и второ, че FK не е задължително (Allow Nulls = true
в таблицата).
Ако решите да добавите свойство за обратна навигация
public class Employee
{
public string EmployeeId { get; set; }
public string FullName { get; set; }
public virtual PayGroup PayGroup { get; set; } // <=
}
променете го на WithOptional(e => e.PayGroup)
.
Ако искате да го направите задължително (Allow Nulls = false
в таблицата), след това използвайте съответния WithRequiredDependent
претоварване (зависимо тук означава, че Employee
ще бъде директор и PayGroup
ще бъде зависимият ).