Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Hubungan Satu ke Satu dengan Kunci Utama yang Berbeda dalam Kode EF 6.1 Pertama

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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cari tahu prosedur tersimpan panggilan di SQL Server

  2. Pengantar Ruang Penyimpanan Langsung untuk SQL Server

  3. Kesalahan overflow aritmatika mengonversi varchar ke tipe data numerik. '10' <=9.00

  4. Penyisipan Massal Daftar Generik C# ke SQL Server

  5. Tidak dapat memotong tabel karena direferensikan oleh batasan KUNCI ASING - Tutorial SQL Server / TSQL Bagian 70