簡體   English   中英

.NET 4:如何在Web.Config中的其他程序集中配置EDMX文件

[英].NET 4: How to configure EDMX file in other assembly in Web.Config

我在配置EDMX文件時遇到問題,該文件位於其他程序集中,而不是Web項目中。 我的項目看起來有點像這樣:

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

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

在Visual Studio中,Project 1中的.EDMX文件的更新順利進行,而當我在項目2中有.EDMX文件時,應用程序按預期運行。

任何人都知道如何配置Project 1中的.EDMX文件指向Web.Config的連接字符串? (或者我應該使用Project1.dll.config配置Project 1?)

您必須更改.edmx文件所在的程序集名稱的連接字符串中的*

<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" />

對於

<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" />

事實證明,有2個問題。 一個解決了替換連接字符串中的*。

第二個問題是這里描述的問題: http//blogs.teamb.com/craigstuntz/2010/08/13/38628/

它與路徑.csdl,.ssdl和.msl文件在Project1程序集中作為資源有關

無論如何,事情現在正常運作

更簡單的方法是從Web.Config獲取連接字符串並將它們復制到App.Config中,並將EDMX的連接字符串指向相同的DB信息。 例如

  <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>

如果您已將Database.edmx從Project 2移動到Project 1,則還需要檢查名稱空間是否正確,您可以通過打開Database.edmx和goto代碼來檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM