one-to-one
relacionamento com a propriedade FK explícita (como seu PayGroup.SupervisorId
) não é suportado. Portanto, remova essa propriedade do modelo:
public class PayGroup
{
public int Id { get; set; }
public virtual Employee Supervisor { get; set; }
}
e use o seguinte mapeamento fluente:
modelBuilder.Entity<PayGroup>()
.HasRequired(e => e.Supervisor)
.WithOptional()
.Map(m => m.MapKey("SupervisorId"));
O
WithOptional()
call especifica duas coisas. Primeiro que não há propriedade de navegação inversa em Employee
class, e segundo que o FK é opcional (Allow Nulls = true
na mesa). Se você decidir adicionar a propriedade de navegação inversa
public class Employee
{
public string EmployeeId { get; set; }
public string FullName { get; set; }
public virtual PayGroup PayGroup { get; set; } // <=
}
altere para
WithOptional(e => e.PayGroup)
. Se você quiser torná-lo obrigatório (
Allow Nulls = false
na tabela), então use o WithRequiredDependent
correspondente sobrecarga (Dependente aqui significa que o Employee
será o diretor e PayGroup
será o dependente ).