2011-10-29 85 views
0

想象一下,我有一個網站,這一個提供服務。要訪問此服務,我需要輸入登錄名/密碼。我想根據登錄設置數據庫使用。例如:在運行時設置NHibernate數據庫

  • login1將使用數據庫1
  • login23將使用database23

是否有可能在運行時設置與NHibernate使用的數據庫?

感謝,

回答

6

你可以想像,SessionFactory代表一個數據庫,並Session表示數據庫連接。 SessionSessionFactory獲得,就像從數據庫獲取數據庫連接一樣。給定一個Session,您不能更改它連接到的數據庫。

在你的情況下,你應該爲database1和database23創建SessionFactory。 如果要連接到database1,請從database1的SessionFactory獲取Session。否則,從數據庫中獲得SessionSessionFactory

+0

它訪問我需要的應用程序中的多個數據庫。但是,當用戶訪問應用程序時,根據此用戶的設置訪問數據庫 –

+0

您只需獲取用戶的設置(如果他應該使用數據庫1),則從數據庫1的SessionFactory中獲取會話以使用該設置。你的問題實際上是什麼? –