one-to-one hubungan dengan properti FK eksplisit (seperti PayGroup.SupervisorId Anda) ) tidak didukung.
Jadi hapus properti itu dari model:
public class PayGroup
{
public int Id { get; set; }
public virtual Employee Supervisor { get; set; }
}
dan gunakan pemetaan lancar berikut:
modelBuilder.Entity<PayGroup>()
.HasRequired(e => e.Supervisor)
.WithOptional()
.Map(m => m.MapKey("SupervisorId"));
WithOptional() panggilan menentukan dua hal. Pertama bahwa tidak ada properti navigasi terbalik di Employee kelas, dan kedua bahwa FK adalah opsional (Allow Nulls = true dalam tabel).
Jika Anda memutuskan untuk menambahkan properti navigasi terbalik
public class Employee
{
public string EmployeeId { get; set; }
public string FullName { get; set; }
public virtual PayGroup PayGroup { get; set; } // <=
}
ubah ke WithOptional(e => e.PayGroup) .
Jika Anda ingin membuatnya diperlukan (Allow Nulls = false dalam tabel), lalu gunakan WithRequiredDependent yang sesuai kelebihan beban (Tergantung di sini berarti bahwa Employee akan menjadi kepala sekolah dan PayGroup akan menjadi bergantung ).