nhibernate datasource sqlite相对文件路径

时间:2010-01-20 23:10:29

标签: nhibernate sqlite nhibernate-mapping

我有以下nhibernate cfg文件:

<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.SQLite20Driver</property>
<property name="connection.connection_string">Data Source=dbFile.db;Version=3</property>
<property name="dialect">NHibernate.Dialect.SQLiteDialect</property>

但是,这会在bin / Debug文件夹中创建并引用dbFile.db。我想知道是否有任何方法可以引用另一个文件夹,例如... / app / database / dbFile.db?

提前致谢

2 个答案:

答案 0 :(得分:1)

您可以从c#代码设置连接字符串属性。您必须在调用Configure()方法之前执行此操作。

var configuration = new Configuration();
config.SetProperty(NHibernate.Cfg.Environment.ConnectionString, myCustomDbPath);
configuration.Configure();

希望有所帮助。

答案 1 :(得分:0)

也许你可以使用DataDirectory-Property从Exe-Path开始:

Data Source=|DataDirectory|../app/database/dbFile.db;Version=3

Data Source=jdbc:sqlite:../app/database/path.db;Version=3

编辑:经过一些谷歌搜索后,我发现这可能不起作用。如果不是我会使用striders解决方案在运行时设置属性。