one-to-one
relación con la propiedad FK explícita (como su PayGroup.SupervisorId
) no es compatible.
Así que elimine esa propiedad del modelo:
public class PayGroup
{
public int Id { get; set; }
public virtual Employee Supervisor { get; set; }
}
y usa el siguiente mapeo fluido:
modelBuilder.Entity<PayGroup>()
.HasRequired(e => e.Supervisor)
.WithOptional()
.Map(m => m.MapKey("SupervisorId"));
WithOptional()
call especifica dos cosas. Primero que no hay una propiedad de navegación inversa en Employee
class, y segundo que el FK es opcional (Allow Nulls = true
en la tabla).
Si decide agregar la propiedad de navegación inversa
public class Employee
{
public string EmployeeId { get; set; }
public string FullName { get; set; }
public virtual PayGroup PayGroup { get; set; } // <=
}
cámbielo a WithOptional(e => e.PayGroup)
.
Si desea que sea obligatorio (Allow Nulls = false
en la tabla), luego use el correspondiente WithRequiredDependent
sobrecarga (Dependiente aquí significa que el Employee
será el principal y PayGroup
será el dependiente ).