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