我們可以將兩者結合起來。有一個例子,首先閱讀配置,然後根據需要使用盡可能多的設置擴展它:
ISessionFactory CreateSessionFactory(string connectionString) // from outer source
{
// the Configuration, i.e.: native, NHibernate one
var configuration = new NHibernate.Cfg.Configuration();
var configFile = ... // a path to configuration ;
// read that configuration file
var document = XDocument.Load(configFile);
// pass it to the Configuration
using (var reader = document.CreateReader())
{
configuration.Configure(reader);
}
// so, the config file is applied,
// no its our dynamic turn
configuration.SetProperty("connection.connection_string", connectionString);
configuration.SetProperty(....);
// and now, we can ask for configuration to produce the factory
var factory = configuration.BuildSessionFactory();
return factory;
}
+1我終於完成了非常相似的工作。感謝您的回答,我希望這會幫助其他人。 –
太棒了,很高興看到這一點。 NHibernate是令人驚歎的工具;) –