2011-04-25 58 views
1

Im新的Nhibernate。 我有應用程序延遲加載。 我想寫方法NHibernate,惰性Loadind和會話作爲Singleton

public User GetUser(int id) 

在我UserPersister類。 稍後,在應用程序中,我想使用一些引用的屬性,如User.Role或User.Address。 如果關閉我用來檢索用戶的會話,它將無法正常工作。 我的第一個想法是創建Singleton Session,然後我將能夠獲取所有數據。 我看了一些文章,認爲這是壞主意,因爲性能和內存泄漏。 這是真的嗎?這個問題的解決方案是什麼?

問候 馬丁

+1

它主要取決於你正在建設的應用程序的類型。它是一些WinForms/WPF應用程序還是Web應用程序? – 2011-04-25 19:02:04

+0

這是WPF應用程序 – Martin 2011-04-25 19:15:56

回答

0

看一看Effectus一個簡單的方法來WPF + NHibernate的。

0

首先記住NH會話!= sqlconnection。即使在wpf中,進行全局(單例)會話通常也不是個好主意,因爲您遲早可以訪問多線程場景。但我確定不會在你的情況下與表現無稽之談反駁。 我建議你打開它以儘可能短的時間來完成這個用例。在您將應用程序的用例標識爲「會話」且使用壽命有限的情況下執行一種分析。例如購物車。你開始,你完成。你可以讓會話直到你完成這個用例。然後把它扔掉...