将NHibernate连接到具有相同架构的不同数据库

将NHibernate连接到具有相同架构的不同数据库,nhibernate,session,sessionfactory,Nhibernate,Session,Sessionfactory,我们正在将数据库拆分为几个较小的数据库。模式将完全相同,我们将在客户端登录时控制系统连接到哪个数据库。如果我没有在我的nhibernate配置中设置连接字符串,我会收到一个错误。我不想为每个数据库创建工厂。有没有可能让会话工厂提供一个会话,我可以在使用它之前设置连接字符串?也许您可以在NHcontrib存储库中使用NHibernate.Shards也许您可以在NHcontrib存储库中使用NHibernate.Shards但是在session.connection上有一个方法更改数据库。也许这样

我们正在将数据库拆分为几个较小的数据库。模式将完全相同,我们将在客户端登录时控制系统连接到哪个数据库。如果我没有在我的nhibernate配置中设置连接字符串,我会收到一个错误。我不想为每个数据库创建工厂。有没有可能让会话工厂提供一个会话,我可以在使用它之前设置连接字符串?

也许您可以在NHcontrib存储库中使用NHibernate.Shards

也许您可以在NHcontrib存储库中使用NHibernate.Shards

但是在session.connection上有一个方法更改数据库。也许这样行吗?

我没有使用它,但是Session.Connection上有一个方法ChangedDatabase。也许这样行?

factory.OpenSession是否每次都创建一个新会话,还是缓存?每次都是昂贵的操作。factory.OpenSession是否每次都创建一个新会话,还是缓存?每次都是昂贵的操作。