2009-02-23 25 views
7

Điều này có vẻ giống như một trường hợp phổ biến, nhưng vì lý do gì đó, tôi bị cuốn theo biên tập viên yếu kém của EF.Làm cách nào tôi có thể thêm liên kết hợp chất theo cách thủ công vào khung thực thể?

Tôi có hai bảng, như vậy:

Table1 
(
Column1 int, PK 
Column2 int, PK 
) 

Table2 
(
Column1 int, PK, FK 
Column2 int, PK, FK 
Column3 int, PK 
) 

Bây giờ, cơ sở dữ liệu (ngoài tầm kiểm soát của chúng tôi) không có ràng buộc khoá ngoại. Trong ví dụ này, Table2 được cho là có ràng buộc khóa ngoài tham chiếu Bảng 1 trên (Cột1, Cột2). Nói cách khác, hai cột đầu tiên của Table2 tham chiếu khóa chính từ Bảng 1. Đây là một vấn đề hàng ngày trong bất kỳ cơ sở dữ liệu thông thường nào.

Trong các khung công tác khác, chẳng hạn như LLBLGenPro, chúng tôi có thể thêm quan hệ theo cách thủ công theo cách rất tầm thường. Tuy nhiên, chúng tôi không thể tìm ra cách để đạt được điều này trong biên tập viên của EF. Cửa sổ "Chi tiết bản đồ" này là khủng khiếp và không trực quan. Cho đến nay, chúng tôi đã quản lý để chọn các bảng khác nhau trong ánh xạ, nhưng nó dường như luôn luôn muốn liên kết trên tất cả các cột.

Bất kỳ ý tưởng hoặc tham chiếu nào?

+0

Bạn đã bao giờ tìm thấy câu trả lời cho việc này không? Tôi đang ở trong tình trạng tương tự và giải pháp của Craig sẽ mất mãi mãi và thực sự sẽ ngăn cản chúng tôi sử dụng EF. – Vaccano

Trả lời

1
  1. Tạo các bảng "tạm thời" có cùng cột nhưng FK thích hợp. Sử dụng bản sao lưu của DB nếu bạn không thể thay đổi bản sao "thực". Đừng bận tâm lập bản đồ các bảng mà không có FK. Có thể dễ nhất nếu bạn sử dụng một mô hình mới, vì việc xóa trong trình thiết kế không loại bỏ ánh xạ cửa hàng.
  2. Ánh xạ chúng bằng trình hướng dẫn.
  3. Mở EDMX dưới dạng XML (không phải trong trình thiết kế)
  4. Tìm kiếm và thay thế tên bảng, sử dụng các bảng bạn thực sự muốn ánh xạ.
  5. Thả các bảng "tạm thời".

Lời khuyên chung: Chỉnh sửa EDMX theo cách thủ công khi thực hiện những việc không chuẩn. Không có FKs = phi tiêu chuẩn. Trình thiết kế GUI chỉ xử lý một số trường hợp nhất định.

+1

Cảm ơn bạn đã trả lời. Điều này nghe có vẻ rất lame.Nó không chỉ là kịch bản FK mà sẽ phạm lỗi này lên. Có các trường hợp ánh xạ tùy chỉnh khác mà mọi người muốn thêm vào các lớp ORM. Điều này không tốt cho EF. –

+0

Đó là những gì nó có, nhưng hầu hết các ORM yêu cầu chỉnh sửa XML tại một số điểm, theo kinh nghiệm của tôi. –

7

Giả sử bạn có hai thực thể tại chỗ.

  1. Nhấp chuột phải vào tiêu đề thực thể Table1 và chọn thêm liên kết.
  2. Chọn Bảng2 từ đầu bên tay phải. (Đặt bất kỳ thuộc tính nào khác trong trình hướng dẫn này)
  3. Chọn liên kết mới được tạo và chỉnh sửa ánh xạ. (Phải được chọn)
  4. Trong cửa sổ Ánh xạ chi tiết, chọn Bảng2

Điều đó phải là vậy.

0
  1. Nhấp chuột phải vào tiêu đề thực thể Table1 và chọn thêm liên kết.
  2. Chọn Bảng2 từ đầu bên tay phải. (Đặt bất kỳ tài sản khác trong wizard này)
  3. Doubleclick hiệp hội mới được tạo ra và thiết lập các thuộc tính
Các vấn đề liên quan