C# 在app.config中创建连接字符串attachdbfilename的相对路径

C# 在app.config中创建连接字符串attachdbfilename的相对路径,c#,asp.net,visual-studio-2013,C#,Asp.net,Visual Studio 2013,这是我的EF entities连接字符串,目前AttachDbFile字符串是数据库的完整路径,在我部署站点时无法工作。如何为我的AttachDbFile创建相对路径 <add name="demoDBEntities" connectionString="metadata=res://*/SalongModel.csdl|res://*/SalongModel.ssdl|res://*/SalongModel.msl;provider=System.Data.SqlClient;prov

这是我的EF entities连接字符串,目前
AttachDbFile
字符串是数据库的完整路径,在我部署站点时无法工作。如何为我的
AttachDbFile
创建相对路径

<add name="demoDBEntities" connectionString="metadata=res://*/SalongModel.csdl|res://*/SalongModel.ssdl|res://*/SalongModel.msl;provider=System.Data.SqlClient;provider connection string='data source=(LocalDB)\v11.0;attachdbfilename=&quot;C:\Users\user\Documents\Visual Studio 2013\Projects\WebApplication3\SVCloginLib\App_Data\demoDB.mdf&quot;;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />
我试过最明显的方法:

<add name="demoDBEntities" connectionString="metadata=res://*/SalongModel.csdl|res://*/SalongModel.ssdl|res://*/SalongModel.msl;provider=System.Data.SqlClient;provider connection string='data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|demoDB.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />

<add name="demoDBEntities" connectionString="metadata=res://*/SalongModel.csdl|res://*/SalongModel.ssdl|res://*/SalongModel.msl;provider=System.Data.SqlClient;provider connection string='data source=(LocalDB)\v11.0;attachdbfilename=&quot;.\App_Data\demoDB.mdf&quot;;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />

<add name="demoDBEntities" connectionString="metadata=res://*/SalongModel.csdl|res://*/SalongModel.ssdl|res://*/SalongModel.msl;provider=System.Data.SqlClient;provider connection string='data source=(LocalDB)\v11.0;attachdbfilename=&quot;~\App_Data\demoDB.mdf&quot;;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework'" providerName="System.Data.EntityClient" /> 

还有更多,都给我:

基础提供程序在打开时失败


它用于c#Rest服务,如果有任何不同

您可以使用
|DataDirectory |
值指定项目中的
App#u Data
文件夹。但是,您确实需要用斜线分隔该值:

<add name="demoDBEntities" connectionString="metadata=res://*/SalongModel.csdl|res://*/SalongModel.ssdl|res://*/SalongModel.msl;provider=System.Data.SqlClient;provider connection string='data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\demoDB.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />

它适用于c#Rest服务,如果它有任何不同,请将该代码添加到您的
应用程序_Start
例程中。我刚刚收到大量错误。我的项目文件夹中没有global.asax.cs。您可以添加
global.asax
文件,并将该行代码复制到正确的例程中。但是,您必须复制错误才能获得这些错误。
<add name="demoDBEntities" connectionString="metadata=res://*/SalongModel.csdl|res://*/SalongModel.ssdl|res://*/SalongModel.msl;provider=System.Data.SqlClient;provider connection string='data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\demoDB.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />
AppDomain.CurrentDomain.SetData("DataDirectory",
    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));