NHibernate自定义连接字符串配置

时间:2010-05-19 00:48:41

标签: c# .net database nhibernate ado.net

我有一个c#库项目,我使用nhibernate配置,我喜欢人们能够导入这个项目并使用该项目。这个项目有FrontController,可以完成所有的工作。

我在hibernate配置文件和另一个项目的app.config文件中有一个连接字符串。

任何人都可以将连接字符串设置为此库项目并使用它。例如通过一个将connectiong字符串作为参数的方法。或者在创建FrontController的新实例时将连接字符串传递给构造函数。或者如果你有更好的主意。

怎么做?

我希望这个类库使用导入的项目的相同数据库。

如何以编程方式设置hibernate连接字符串?

对于log4net也是一样的想法。

1 个答案:

答案 0 :(得分:4)

这取决于您构建NHibernate.Cfg.Configuration和会话工厂的方式。它可以这么简单:

public ISessionFactory BuildSessionFactory(string connectionString) {
    var cfg = new Configuration()
                .AddProperties(new Dictionary<string, string> {
                    {Environment.ConnectionDriver, typeof (SQLite20Driver).FullName},
                    {Environment.ProxyFactoryFactoryClass, typeof (ProxyFactoryFactory).AssemblyQualifiedName},
                    {Environment.Dialect, typeof (SQLiteDialect).FullName},
                    {Environment.ConnectionProvider, typeof (DriverConnectionProvider).FullName},
                    {Environment.ConnectionString, connectionString},
                })
                .AddAssembly(Assembly.GetExecutingAssembly());
    return cfg.BuildSessionFactory();
}

我不确定你想用log4net做什么。