配置文件中数据库文件的相对路径

tyr*_*pex 9 config sql-server-ce

我已经创建了一个WCF REST服务,它使用nhibernate连接到sql server compact edition数据库.因此,我配置NHibernate数据源,如:

<property name="connection.connection_string">Data Source=[Path]\MyDb.sdf</property>
Run Code Online (Sandbox Code Playgroud)

我现在遇到的烦恼是我无法弄清楚如何避免在配置中写出绝对路径.这很烦人,因为我将数据库文件保存为App_Data文件夹中项目的一部分.所以我不应该更新路径,例如当我将项目部署到另一个位置时,即使绝对路径不同.

使用procmon我注意到如果我不在数据源配置中写一个绝对pat,它被解释为相对于路径:*C:\ Program Files(x86)\ Common Files\Microsoft Shared\DevServer\10.0*.

是否有可能让nhibernate假设我们想要将路径与应用程序bin文件夹相关联(这是我的App_Data/MyDb.sdf结束的地方)?

Die*_*hon 17

你应该使用:

Data Source=|DataDirectory|\MyDb.sdf
Run Code Online (Sandbox Code Playgroud)

|DataDirectory|指向该App_Data文件夹.

  • 对于其他任何人你都可以使用它来生成其他亲属,即:`| DataDirectory |\..\bin\File.sdf`.如果我能更多地投票,谢谢,完美.您知道连接字符串支持的任何其他路径关键字,还是仅仅是那个? (3认同)