2012-03-09 50 views
0

我需要一些建議:我想不脫鉤的演示NHibernate的依賴和業務邏輯層,以只有數據訪問邏輯層參考NHibernate的DLL文件。C#NHibernate的mulitier架構

我只看到使用SessionHelper/SessionManager對象解決方案,並在頂部層中的所有正在創建使用。我認爲一個更好的解決方案必須存在。

我應該遵循什麼設計模式? 我是否可以在存儲庫模式中封裝會話(管理器,幫助器等),並輕鬆更改ORM而不強制在業務邏輯層進行更改?

一個代碼示例,將不勝感激。提前致謝。

+1

「輕鬆更改ORM?」你只能使用你可能想要使用的所有ORMS之間的最小公分母。你將會遇到性能問題,因爲你不能使用很多功能來增強它,並且你會有抽象的漏洞。 – Firo 2012-03-09 14:31:20

+1

這個問題出現了很多,一般的答案是:不要這樣做。很少有能夠更換ORM的情況值得所需的重要折衷。如果沒有完全中斷它,很難「隱藏」ORM。 – 2012-03-09 14:45:14

+0

Hi @MichaelMaddox:理論上我不想更換ORM,因爲客戶不支付這種投資。我的目標是能夠實現基類/泛型類(適用於我的所有項目),並允許我隱藏我不想看到的東西(即依賴於ORM)。我想封裝nhibernate會話,EF objectcontext等。你將如何實現這樣一個類? – Joao 2012-03-09 16:31:55

回答