2010-02-11 40 views
7

để câu chuyện giống như thế này.Chuỗi kết nối EDMX

Tôi có một dự án, được gọi là PA.DLL, có một mô hình thực thể bên trong tệp (edmx).

Trong một dự án khác mà tôi đang tham chiếu đến PA.DLL, tôi đã sao chép chuỗi kết nối đã được tạo (tự động) khi tạo tệp edmx vào app.config ứng dụng chính.

Tuy nhiên, khi tôi tải và chạy các dòng sau:

using (PAEntities analytix = new PAEntities()) 
      { 
... 
} 

tôi nhận được lỗi sau:

System.ArgumentException: The specified default EntityContainer name 'PAEntities' could not be found in the mapping and metadata information. 

Có ai có bất kỳ ý tưởng gì là nguyên nhân cho lỗi này?

Đây là cách chuỗi kết nối của tôi được cấu hình:

<add name="PAEntities" 
    connectionString="metadata=res://*/PAEntities.csdl|res://*/PAEntities.ssdl|res://*/PAEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=XSXSX;Initial Catalog=PA;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> 

Cảm ơn

Trả lời

3

Một giải pháp là để đặt các chuỗi kết nối đến tập tin cấu hình của dự án tiêu thụ DLL của bạn.
Cách khác là chuyển chuỗi kết nối trong mã (sử dụng hàm tạo tham số của PAEntities).

7

Trên trình khám phá giải pháp, bấm chuột phải vào tệp Mô hình dữ liệu thực thể (.edmx) và bấm 'Mở bằng'. Một hộp thoại sẽ mở ra để chọn một chương trình để bạn mở tệp. Chọn hoặc nhấp đúp vào 'Trình soạn thảo XML (văn bản)'.

Bây giờ bạn đang xem phiên bản XML của tệp EDM nơi bạn có thể dễ dàng chỉnh sửa tên 'EntityContainer'.

Nếu bạn đã thay đổi chuỗi kết nối trên tệp webconfig, hãy đảm bảo 'DefaultContainerName' là tên trên phần 'EntityContainer' trong tệp XML đó.

Thông thường khi bạn cập nhật defaultContainerName trong tệp * .Designer.cs, nó không cập nhật tệp XML. Vì vậy, bạn đã làm điều đó bằng tay.

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