5

我希望能够使用相对路径在超过 1 台电脑上使用 SQLite DB。app.config 中的连接字符串现在看起来像这样:

<add name="DBPersonEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SQLite;provider connection string='data source=&quot;C:\Users\Dreeze\Documents\Test DB2\DBPerson.s3db&quot;'" providerName="System.Data.EntityClient" />

数据库文件与应用程序位于同一文件夹中......我想让路径相对,以便它引用应用程序文件夹。谁能帮我改变这个连接字符串?

4

2 回答 2

2

使用此连接字符串

<add name="DWContext" connectionString="Data Source=|DataDirectory|DBPerson.s3db" providerName="System.Data.SQLite" />

然后在初始化 Context objext 之前在代码上设置 DataDirectory 路径。

string executable = System.Reflection.Assembly.GetExecutingAssembly().Location;
string path = (System.IO.Path.GetDirectoryName(executable));
AppDomain.CurrentDomain.SetData("DataDirectory", path);
于 2016-12-01T07:18:18.597 回答
0

您应该能够使用数据目录替换字符串:

provider connection string='data source=&quot;|DataDirectory|DBPerson.s3db&quot;'
于 2012-10-15T16:17:49.597 回答