2010-05-19 47 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做什麼。

相關問題