. net 4:如何在Web.Config中配置其他程序集中的EDMX文件
本文关键字:程序集 程序 其他 集中 文件 EDMX 配置 Config Web net | 更新日期: 2023-09-27 17:50:56
我在配置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中,项目1中的。edmx文件的更新进行得很顺利,当我在项目2中有。edmx文件时,应用程序正常运行。
有人知道如何配置项目1内的。edmx文件指向Web.Config的连接字符串吗?(或者我应该使用Project1.dll。
您必须更改.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" />
事实证明,有两个问题。一个解决了替换连接字符串中的*。
第二个问题是这里描述的:http://blogs.teamb.com/craigstuntz/2010/08/13/38628/
它与路径。csdl,。ssdl和。msl文件在Project1程序集中作为资源有关
无论如何,现在一切正常
更简单的方法是从Web获取连接字符串。配置并将它们复制到App.Config中,并将EDMX的connectionstring指向相同的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="data source=.'SQLEXPRESS;attachdbfilename=|DataDirectory|'aspnetdb.mdf;integrated security=True;user instance=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
如果移动了Database,还需要检查名称空间是否正确。从项目2到项目1,您可以通过打开Database来检查。