one-to-one
relazione con la proprietà FK esplicita (come il tuo PayGroup.SupervisorId
) non è supportato.
Quindi rimuovi quella proprietà dal modello:
public class PayGroup
{
public int Id { get; set; }
public virtual Employee Supervisor { get; set; }
}
e usa la seguente mappatura fluente:
modelBuilder.Entity<PayGroup>()
.HasRequired(e => e.Supervisor)
.WithOptional()
.Map(m => m.MapKey("SupervisorId"));
Il WithOptional()
call specifica due cose. Innanzitutto che non esiste una proprietà di navigazione inversa in Employee
class e secondo che l'FK è opzionale (Allow Nulls = true
nella tabella).
Se decidi di aggiungere la proprietà di navigazione inversa
public class Employee
{
public string EmployeeId { get; set; }
public string FullName { get; set; }
public virtual PayGroup PayGroup { get; set; } // <=
}
cambialo in WithOptional(e => e.PayGroup)
.
Se vuoi renderlo obbligatorio (Allow Nulls = false
nella tabella), quindi utilizzare il corrispondente WithRequiredDependent
sovraccarico (Dipendente qui significa che il Employee
sarà il preside e PayGroup
sarà il dipendente ).