Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET 4:如何在Web.Config中的其他程序集中配置EDMX文件_C#_Asp.net_Sql Server_Web Config_Connection String - Fatal编程技术网

C# .NET 4:如何在Web.Config中的其他程序集中配置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文件,但应用

我在配置位于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中配置.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=&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从项目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" />