2017-12-28 179 views
7

Tôi đang sử dụng cơ sở dữ liệu trước và có tuyên bố switch trông giống như sau:"loại thực thể không phải là một phần của mô hình cho bối cảnh hiện tại" lỗi được ném khi dự án chứa nhiều hơn một tệp EDMX

switch (site) 
{ 
    case Site.One: 
     using (OneContext one = new OneContext()) 
      return one.OrganizationObjects.SingleOrDefault(x => x.u_Name == orgName)?.g_org_id; 
    case Site.Two: 
     using (TwoContext two = new TwoContext()) 
      return two.OrganizationObjects.SingleOrDefault(x => x.u_Name == orgName)?.g_org_id; 
    default: 
     throw new NotImplementedException(); 
} 

Cả hai cơ sở dữ liệu là khá giống nhau và có gần như tất cả các mô hình tương tự.

Nếu tôi xóa tệp "Two" EDMX và nhận xét điều kiện, thì OneContext hoạt động hoàn hảo.
Nếu tôi thêm tệp TwoContext EDMX vào dự án và chạy lại mã, mã "OneContext" không thành công khi truy vấn OrganizationObjects.

Tôi đảm bảo từng ngữ cảnh đang sử dụng đúng chuỗi kết nối, nhưng lỗi này vẫn xảy ra :

enter image description here

+0

Cả edmx là trong cùng một thư mục? – Eldho

+0

@Eldho Yeah. Đó là nhiều EDMX trong cùng một thư mục. Họ có nên ở trong các thư mục khác nhau nếu các mô hình tương tự không? – ernest

+1

Bạn có thể thử tách nhiều thư mục này không. Tôi đã có một vấn đề như nếu edmx thứ hai được thêm vào tôi đã bị mất các lớp tt edmx đầu tiên. nó hoạt động khi tách ra. – Eldho

Trả lời

3

Cách giải quyết: Thay đổi thuộc tính trên một trong hai lớp giống nhau.

Kết quả phù hợp với EF trên tên lớp VÀ thuộc tính lớp học. Vì vậy, tôi chỉ thay đổi tên thuộc tính trên một trong các đối tượng EF và lỗi đã biến mất.

Như @Entrodus nhận xét về một trong những câu trả lời khác:

EF va chạm chỉ xảy ra khi hai lớp có cùng tên VÀ tập cùng các thông số.

The mapping of CLR type to EDM type is ambiguous with EF 6 & 5?

0

Đối tượng khung khớp với tên lớp và thuộc tính lớp học. Hai lớp có cùng tên lớp và các thuộc tính giống nhau dẫn đến xung đột.

Thay đổi thuộc tính trên một trong hai lớp giống nhau sẽ giải quyết vấn đề.

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