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 và PayGroup
sẽ là phụ thuộc ).