C# .NET 4:如何在Web.Config中的其他程序集中配置EDMX文件
我在配置位于web项目以外的程序集中的EDMX文件时遇到问题。我的项目看起来有点像这样:C# .NET 4:如何在Web.Config中的其他程序集中配置EDMX文件,c#,asp.net,sql-server,web-config,connection-string,C#,Asp.net,Sql Server,Web Config,Connection String,我在配置位于web项目以外的程序集中的EDMX文件时遇到问题。我的项目看起来有点像这样: Project 1 --> Database.edmx --> App.Config Project 2 --> Ton's of .cs and .aspx files. --> Web.Config with the proper connection string. 在VisualStudio中,项目1中.EDMX文件的更新进展顺利,虽然我在项目2中有.EDMX文件,但应用
Project 1
--> Database.edmx
--> App.Config
Project 2
--> Ton's of .cs and .aspx files.
--> Web.Config with the proper connection string.
在VisualStudio中,项目1中.EDMX文件的更新进展顺利,虽然我在项目2中有.EDMX文件,但应用程序按预期运行
有人知道如何在Project 1中配置.EDMX文件以指向Web.Config的connectionstring吗?(或者我应该使用Project1.dll.config来配置Project1吗?更简单的方法是从Web.config获取连接字符串并将其复制到App.config中,然后将EDMX的connectionstring指向相同的DB信息。e、 g
<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.edmx从项目2移动到项目1,则需要检查名称空间是否正确,您可以通过打开Database.edmx并转到后面的代码来检查名称空间。您必须更改连接字符串中.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" />
为了
结果是,有两个问题。解决了一个问题,即替换连接字符串中的* 第二个问题是这里描述的问题: 它与路径有关。csdl、.ssdl和.msl文件在Project1程序集中用作资源 不管怎样,现在一切正常
<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" />