我的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="C:\Documents and Settings\jdoe\Desktop\LcdManager\LcdManager\App_Data\monitor.sqlite"'" providerName="System.Data.EntityClient" />
指的是一个EntityFramework实例,它映射位于应用程序的App_Data目录中的sqlite数据库。
如何使链接相对,以便在生产环境中部署更容易?
由于
答案 0 :(得分:6)
你不能使用“| DataDirectory |”在连接字符串(而不是C:... \ App_Data)? E.g:
connectionString="... |DataDirectory|\monitor.sqlite ..."
我知道这适用于部署在应用程序的app_data文件夹中的SQL Server Express数据库。但我不知道这是否适用于Entity Framework / SQLite。
答案 1 :(得分: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="./App_Data/monitor.sqlite"'" providerName="System.Data.EntityClient" />
或
<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="|DataDirectory|/monitor.sqlite"'" providerName="System.Data.EntityClient" />
答案 2 :(得分:0)
我假设你在谈论这一点
C:\Documents and Settings\jdoe\Desktop\LcdManager\LcdManager\App_Data\monitor.sqlite
相反,试试这个
../../App_Data/monitor.sqlite
(不确定'../'的数量,但你明白了 ../../ App_Data文件/ monitor.sqlite