ASP.NET Web.config中的相对路径

pis*_*hio 4 asp.net

我的ASP.NET Web.config应用程序中有以下标记:

<add name="monitorEntities" connectionString="metadata=res://*/Models.MonitorDB.csdl|res://*/Models.MonitorDB.ssdl|res://*/Models.MonitorDB.msl;provider=System.Data.SQLite;provider connection string='data source=&quot;C:\Documents and Settings\jdoe\Desktop\LcdManager\LcdManager\App_Data\monitor.sqlite&quot;'" providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)

它指的是一个EntityFramework实例,它映射位于应用程序的App_Data目录中的sqlite数据库.

如何使链接相对,以便在生产环境中部署更容易?

谢谢

M4N*_*M4N 6

你不能使用"| DataDirectory |" 在连接字符串(而不是C:...\App_Data)?例如:

connectionString="... |DataDirectory|\monitor.sqlite ..."
Run Code Online (Sandbox Code Playgroud)

我知道这适用于部署在应用程序的app_data文件夹中的SQL Server Express数据库.但我不知道这是否适用于Entity Framework/SQLite.


Dav*_*sen 6

你有没有尝试过

<add name="monitorEntities" connectionString="metadata=res://*/Models.MonitorDB.csdl|res://*/Models.MonitorDB.ssdl|res://*/Models.MonitorDB.msl;provider=System.Data.SQLite;provider connection string='data source=&quot;./App_Data/monitor.sqlite&quot;'" providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)

要么

<add name="monitorEntities" connectionString="metadata=res://*/Models.MonitorDB.csdl|res://*/Models.MonitorDB.ssdl|res://*/Models.MonitorDB.msl;provider=System.Data.SQLite;provider connection string='data source=&quot;|DataDirectory|/monitor.sqlite&quot;'" providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)