Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Mối quan hệ 1-1 với khóa chính khác nhau trong mã EF 6.1 Đầu tiên

one-to-one mối quan hệ với thuộc tính FK rõ ràng (như PayGroup.SupervisorId của bạn ) không được hỗ trợ.

Vì vậy, hãy xóa thuộc tính đó khỏi mô hình:

public class PayGroup
{
    public int Id { get; set; }
    public virtual Employee Supervisor { get; set; }
}

và sử dụng cách lập bản đồ thông thạo sau:

modelBuilder.Entity<PayGroup>()
    .HasRequired(e => e.Supervisor)
    .WithOptional()
    .Map(m => m.MapKey("SupervisorId"));

WithOptional() cuộc gọi chỉ định hai điều. Đầu tiên là không có thuộc tính điều hướng nghịch đảo trong Employee và thứ hai là FK là tùy chọn (Allow Nulls = true trong bảng).

Nếu bạn quyết định thêm thuộc tính điều hướng nghịch đảo

public class Employee
{
    public string EmployeeId { get; set; }
    public string FullName { get; set; }
    public virtual PayGroup PayGroup { get; set; } // <=
}

thay đổi nó thành WithOptional(e => e.PayGroup) .

Nếu bạn muốn làm cho nó bắt buộc (Allow Nulls = false trong bảng), sau đó sử dụng WithRequiredDependent tương ứng quá tải ( Phụ thuộc ở đây có nghĩa là Employee sẽ là hiệu trưởng PayGroup sẽ là phụ thuộc ).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Câu lệnh SQL Server 2008 IIF dường như không được kích hoạt

  2. Cho phép các ký tự đặc biệt SQL Server 2008

  3. Cách thêm dấu phân tách vào chuỗi nối trong SQL Server - CONCAT_WS ()

  4. máy chủ sql 4 byte unsigned int

  5. Từ khóa không được hỗ trợ:'máy chủ'