在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="C:'Users'user'Documents'Visual Studio 2013'Projects'WebApplication3'SVCloginLib'App_Data'demoDB.mdf";integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />
这是有趣的部分:
attachdbfilename="C:'Users'user'Documents'Visual Studio 2013'Projects'WebApplication3'SVCloginLib'App_Data'demoDB.mdf"
我试过最明显的:
<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=".'App_Data'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="~'App_Data'demoDB.mdf";integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />
加载更多,都给我:
基础提供程序在打开时失败。
它适用于c#Rest服务,如果它有任何不同的话
您可以使用|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));