각 연결 문자열에 대해 다른 구성의 다른 ISessionFactory가 필요합니다.
다음은 ISessionFactory Factory의 매우 어려운 구현입니다. 구성은 연결 문자열뿐 아니라 다양한 방법 (예 : DLL 범위)에 따라 다를 수 있습니다. 따라서 _buildConfiguration
에 전체 configSection
을 곧 전달하거나 맞춤 IMyConfigurationBuilder에서 _buildConfiguration
을 구현해야 할 수도 있습니다. 이
도움이 될 것입니다
// The main method to be called with "oracle" or "sqlserver" as parameter
public NHibernate.ISessionFactory BuildSessionFactory(string configName)
{
return GetConfiguration(configName).BuildSessionFactory();
}
public NHibernate.Cfg.Configuration GetConfiguration(string configName)
{
switch (configName)
{
case "oracle": return _buildConfiguration("connectionstringtoOracleFromApplicationConfig");
case "sqlserver": return _buildConfiguration("connectionstringtoSqlserverFromApplicationConfig");
}
return null;
}
private NHibernate.Cfg.Configuration _buildConfiguration(string connectionString)
{
var cfg = new Configuration();
//.
//.
cfg.Properties.Add("connection.connection_string", connectionString);
//.
//.
return cfg;
}
희망
출처
2013-04-24 08:44:38
jbl