one-to-one vztah s explicitní vlastností FK (jako je vaše PayGroup.SupervisorId ) není podporováno.
Odstraňte tedy tuto vlastnost z modelu:
public class PayGroup
{
public int Id { get; set; }
public virtual Employee Supervisor { get; set; }
}
a použijte následující plynulé mapování:
modelBuilder.Entity<PayGroup>()
.HasRequired(e => e.Supervisor)
.WithOptional()
.Map(m => m.MapKey("SupervisorId"));
WithOptional() volání specifikuje dvě věci. Za prvé, v Employee neexistuje žádná vlastnost inverzní navigace class a za druhé, že FK je volitelný (Allow Nulls = true v tabulce).
Pokud se rozhodnete přidat vlastnost inverzní navigace
public class Employee
{
public string EmployeeId { get; set; }
public string FullName { get; set; }
public virtual PayGroup PayGroup { get; set; } // <=
}
změňte jej na WithOptional(e => e.PayGroup) .
Pokud chcete, aby to bylo povinné (Allow Nulls = false v tabulce), pak použijte odpovídající WithRequiredDependent přetížení (Závislý zde znamená, že Employee bude ředitelem a PayGroup bude závislou ).