2015-09-23 73 views
0

我是nhibernate的新手,我構建了一個客戶端 - 服務器應用程序。我聽說要創建一個nhinernate ISessionFactory最好是隻創建一次。但它也會影響數據庫?或者只是運行軟件的工作站?我問這是因爲如果它是三層應用程序,那麼我將只有一個nhinernate,但由於我的應用程序是客戶端服務器,因此該軟件將在每個工作站上運行。所以每個工作站都會創建一個nhinernate ISessionFactory客戶端 - 服務器軟件nhibernate ISessionFactory

回答

0

不會。它不會影響數據庫。實際上,保留一個ISessionFactory實例有很多原因。其中一個主要原因是幫助nhibernate知道應該如何訪問數據庫的所有信息,我的意思是,它應該如何在整個mappings配置中生成查詢。

從一個會話的NHibernate Docs

內部狀態是不可變的。一旦創建了這個內部狀態 被設置。該內部狀態包括關於對象/關係映射的元數據的所有 。

ISessionFactory不會瞬移的數據庫,它將被OpenSession()方法提供的Session實例和Session會瞬移你。

根據您使用NHibernate映射的模型,開始ISessionFactory可能需要一點時間。有一些pratices to improve the performance of the initializationISessionFactory。如果您實現它,請記住在更改映射時刪除序列化文件。