one-to-one
relatie met expliciete FK-eigenschap (zoals uw PayGroup.SupervisorId
) wordt niet ondersteund.
Dus verwijder die eigenschap uit het model:
public class PayGroup
{
public int Id { get; set; }
public virtual Employee Supervisor { get; set; }
}
en gebruik de volgende vloeiende mapping:
modelBuilder.Entity<PayGroup>()
.HasRequired(e => e.Supervisor)
.WithOptional()
.Map(m => m.MapKey("SupervisorId"));
De WithOptional()
oproep specificeert twee dingen. Ten eerste dat er geen inverse navigatie-eigenschap is in Employee
klasse, en ten tweede dat de FK optioneel is (Allow Nulls = true
in de tabel).
Als u besluit een eigenschap voor omgekeerde navigatie toe te voegen
public class Employee
{
public string EmployeeId { get; set; }
public string FullName { get; set; }
public virtual PayGroup PayGroup { get; set; } // <=
}
verander het in WithOptional(e => e.PayGroup)
.
Als je het verplicht wilt maken (Allow Nulls = false
in de tabel), gebruik dan de corresponderende WithRequiredDependent
overbelasting (Afhankelijk betekent hier dat de Employee
wordt de hoofd en PayGroup
zal de afhankelijke . zijn ).