更新: NuGetとGitHubで利用できるようになりました
いつか欲しかった機能です。実現しなかったので、時間をかけて NHibernate X-Factories という拡張メソッドを作成しました。1 つの .cfg.xml に複数の session-factory 要素を作成し、それらに名前を付けるだけです。その後、sessionFactory を構成するときに、それらを名前で呼び出すことができます。
nhibernate.cfg.xml
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2-x-factories">
<session-factory name="Development">
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="connection.connection_string">Server=dsql01;DataBase=dbDev;uid=nhDeveloper;pwd=pass1234</property>
<property name="show_sql">true</property>
<mapping assembly="DataLayer" />
</session-factory>
<session-factory name="Production">
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="connection.connection_string">Server=psql02;DataBase=dbDev;uid=nhDeveloper;pwd=pass5678</property>
<property name="show_sql">false</property>
<mapping assembly="DataLayer" />
</session-factory>
</hibernate-configuration>
C#
NHibernate.Cfg.Configuration config = new NHibernate.Cfg.Configuration();
config.Configure("~/nhibernate.cfg.xml", "Development").BuildSessionFactory();
詳細については、https://www.github.com/roydukkey/NHibernate-X-Factories/を参照してください。