2013-01-08 21 views
7

Tôi gặp vấn đề với việc cấu hình một tệp EDMX đang sống trong một hội đồng khác với dự án web. dự án của tôi có vẻ hơi như thế này:.NET 4: Cách cấu hình tập tin EDMX trong assembly khác trong Web.Config

Project 1 
--> Database.edmx 
--> App.Config 

Project 2 
--> Ton's of .cs and .aspx files. 
--> Web.Config with the proper connection string. 

Bên trong Visual Studio các cập nhật của file .EDMX bên trong dự án 1 diễn ra trôi chảy và trong khi tôi đã có tập tin .EDMX bên trong dự án 2 ứng dụng chạy như nó phải.

Bất kỳ ai cũng có ý tưởng về cách định cấu hình tệp .EDMX bên trong Dự án 1 để trỏ đến chuỗi kết nối của Web.Config? (hoặc tôi nên sử dụng Project1.dll.config để cấu hình Project 1?)

Trả lời

10

Bạn phải thay đổi * trong chuỗi kết nối cho tên assembly mà các tập tin .edmx đang ở:

<add name="Entities" connectionString="metadata=res://*/Models.EF.Model.csdl|res://*/Models.EF.Model.ssdl|res://*/Models.EF.Model.msl;provider=System.Data.SqlClient;provider connection ... ;" providerName="System.Data.EntityClient" /> 

cho

<add name="Entities" connectionString="metadata=res://Project2/Models.EF.Model.csdl|res://Project2/Models.EF.Model.ssdl|res://Project2/Models.EF.Model.msl;provider=System.Data.SqlClient;provider connection ... ;" providerName="System.Data.EntityClient" /> 
1

Cách dễ dàng hơn là lấy chuỗi kết nối từ Web.Config và sao chép chúng vào chuỗi kết nối của App.Config và điểm EDMX cho cùng một thông tin DB. ví dụ

<connectionStrings> 
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> 
    <add name="aspnetdbEntities" connectionString="metadata=res://*/Data.PSBData.csdl|res://*/Data.PSBData.ssdl|res://*/Data.PSBData.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS;attachdbfilename=|DataDirectory|\aspnetdb.mdf;integrated security=True;user instance=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 

Ngoài ra, bạn cần phải kiểm tra nếu không gian tên là chính xác nếu bạn đã chuyển Database.edmx từ Dự án 2 để dự án 1, mà bạn có thể kiểm tra bằng cách mở Database.edmx và mã goto phía sau.

4

Khi nó bật ra, có 2 vấn đề . Một đã được giải quyết thay thế * trong chuỗi kết nối.

Vấn đề thứ hai được một trong những mô tả ở đây: http://blogs.teamb.com/craigstuntz/2010/08/13/38628/

Nó phải làm gì với con đường .csdl, .ssdl và các tập tin .msl có như nguồn lực bên trong lắp ráp Project1

Dù sao, mọi thứ hoạt động đúng bây giờ

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