2010-05-19 26 views
1

我有一个c#库项目,我使用nhibernate配置,我喜欢人们能够导入此项目并使用该项目。这个项目有FrontController来完成所有的工作。NHibernate自定义连接字符串配置

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

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

如何做到这一点?

我喜欢这个类库来使用导入的项目的同一个数据库。

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

log4net的相同想法。

回答

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做什么。

相关问题