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

本文关键字:attachdbfilename 相对 路径 字符串 连接 app config 创建 | 更新日期: 2023-09-27 18:00:44

这是我的EF实体连接字符串,目前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" />

这是有趣的部分:

attachdbfilename=&quot;C:'Users'user'Documents'Visual Studio 2013'Projects'WebApplication3'SVCloginLib'App_Data'demoDB.mdf&quot;

我试过最明显的:

<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服务,如果它有任何不同的话

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

您可以使用|DataDirectory|值来指定项目中的App_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" />

您可能还需要在应用程序的初始化方法中设置DataDirectory的值(例如global.asax.cs中的Application_Start):

AppDomain.CurrentDomain.SetData("DataDirectory",
    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
相关文章:
  • 没有找到相关文章