2010-04-27 45 views
7

Tôi đã tự hỏi liệu EF4 có hỗ trợ các mối quan hệ chéo-databse không? Ví dụ:Các mối quan hệ cơ sở dữ liệu chéo EF4

db1

Author 
    Id 
    Name 

db2

Posts 
    Id 
    Content 
    db1.Author.Id 

gì lý tưởng tôi cần phải làm để có được mối quan hệ này trong mô hình ef4 của tôi?

Các bạn có ý tưởng gì không?

Cảm ơn

Trả lời

5

Tôi đã tìm thấy this entry in Microsoft Connect câu trả lời cho câu hỏi về sự hỗ trợ được cung cấp tại thời điểm này bởi EF (thực sự nó chưa được hỗ trợ).

Cũng tìm thấy a thread in Social MSDN về mối quan ngại này.

liên kết khác trên Stack Overflow:

Nói tóm lại, các lựa chọn thay thế đưa ra chỉ là:

  1. Using views in EF

  2. Use NHibernate instead

3

Gần đây tôi đã bắt đầu một dự án sử dụng khung thực thể với hai cơ sở dữ liệu, một máy chủ Oracle và một máy chủ SQL. Tôi không thể tìm thấy bất kỳ thông tin nào về cơ sở dữ liệu chéo hoặc hỗ trợ nhiều cơ sở dữ liệu trong khung thực thể.

Hầu hết các bài đăng từ nhóm khuôn khổ MS Entity đã được một vài năm tuổi và cho biết rằng bao gồm hai cơ sở dữ liệu trong một mô hình không phải là tính năng sẽ sớm được đưa vào. Tôi sẽ được quan tâm trong việc có một câu trả lời cụ thể về việc liệu nó đã được bao gồm trong năm 2010 bản thân mình mặc dù tôi nghi ngờ câu trả lời là không.

Hiện tại, dự án đã vượt qua giới hạn này bằng cách có mô hình thực thể riêng biệt cho mỗi cơ sở dữ liệu. Điều này đã giải quyết được vấn đề cho phần lớn các kịch bản mà chúng ta đã gặp phải trong dự án.

Trong trường hợp chúng tôi cần truy vấn dữ liệu từ hai cơ sở dữ liệu cùng một lúc, chúng tôi chỉ cần tạo chế độ xem trong một hoặc các cơ sở dữ liệu khác. Vì chúng ta đang sử dụng Oracle và SQL Server, nên khung nhìn này sẽ sử dụng hoặc một Máy chủ Liên kết (SQL) hoặc một DBLink (Oracle).

Điểm bất lợi của các khung nhìn trong khung thực thể là chúng ta phải dành nhiều thời gian hơn tôi dự kiến ​​sẽ nhận được các khóa chính hoạt động.

Hy vọng điều này sẽ hữu ích.

4

Nếu cơ sở dữ liệu của bạn hỗ trợ Từ đồng nghĩa, bạn có thể đánh lừa EF để span nhiều cơ sở dữ liệu. Tôi đã viết lên làm thế nào để làm điều đó here.

Về cơ bản, bạn kết thúc với tệp edmx cho mỗi cơ sở dữ liệu và tập lệnh kết hợp chúng thành một tệp edmx duy nhất. Các từ đồng nghĩa được sử dụng để tham chiếu một cơ sở dữ liệu từ một cơ sở dữ liệu khác bằng cách sử dụng tên bảng thực tế, vì vậy EF không phù hợp khi bạn cố gắng truy cập database2.table từ database1. Bạn vẫn phải thiết lập các liên kết giữa hai cơ sở dữ liệu theo cách thủ công trong mô hình EF, nhưng một khi thiết lập chúng sẽ ở lại ngay cả khi bạn chạy lại kịch bản hợp nhất.

Scripts để thiết lập synonym và sáp nhập các tập tin edmx được đăng trong liên kết

+0

tôi đề nghị bạn bỏ phiếu lên đề nghị uservoice tôi ở đây: http://visualstudio.uservoice.com/forums/121579-visual-studio/ gợi ý/2730532-make-entity-framework-designer-support-synonyms Nếu chúng ta có thể nhận được hỗ trợ đồng nghĩa trong nhà thiết kế, thì tất cả đều dễ dãi. Ngoài ra, hãy khuyến khích bất kỳ ai khác bạn có thể tìm thấy ai quan tâm đến hỗ trợ qua cơ sở dữ liệu để bỏ phiếu này. –

Các vấn đề liên quan