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