Tôi đang cố gắng sử dụng hai thực thể khác nhau trên cùng một bảng. Mục đích của việc có hai thực thể là giới hạn số lượng thuộc tính trong một trong số chúng, bởi vì trên một trong các dạng chỉnh sửa, nó chỉ có thể thay đổi một vài thuộc tính. Vì vậy, để tránh phải có các thuộc tính không thể chỉnh sửa được ẩn để giữ nguyên giá trị của chúng, tôi nghĩ rằng việc có một thực thể riêng biệt chỉ với một phần thuộc tính sẽ là một ý tưởng hay.Làm thế nào để có nhiều thực thể ánh xạ với một bảng?
Vì vậy, tôi có một thực thể với tất cả các thuộc tính và một thuộc tính chỉ với một số thuộc tính. Vấn đề là tôi nhận được ngoại lệ này:
`Các loại thực thể 'ApplicationMapping' và 'ApplicationMappingFull' không thể chia sẻ bảng 'ApplicationMapping' vì họ không nằm trong cùng hệ thống phân cấp loại hoặc không có một giá trị với một khóa ngoại quan quan hệ với các khóa chính tương ứng giữa chúng.
Các lớp cấu hình thực thể giống như thế này:
class ApplicationMappingFullConfiguration : EntityTypeConfiguration<ApplicationMappingFull>
{
public ApplicationMappingFullConfiguration()
{
ToTable("ApplicationMapping");
HasKey(p => p.Id);
}
}
class ApplicationMappingConfiguration : EntityTypeConfiguration<ApplicationMapping>
{
public ApplicationMappingConfiguration()
{
ToTable("ApplicationMapping");
HasKey(p => p.Id);
}
}
Làm thế nào tôi có thể đạt được những gì tôi đang cố gắng để làm gì? Có cách nào tốt hơn/đơn giản hơn để làm điều đó?
Cảm ơn!
'ApplicationMappingFull' có kế thừa từ' ApplicationMapping' không? Bạn có thể thêm mã cho các lớp này vào câu hỏi của bạn không? –
@HenkMollema Không, không có sự kế thừa giữa các thực thể. Chúng là những thực thể riêng biệt, một thực thể có tất cả các trường từ bảng, cái kia chỉ có một vài trường. – Stian
Chỉ cần sử dụng hai mô hình chế độ xem riêng biệt mà cả hai ánh xạ trở lại cùng một thực thể. – dotjoe