2012-01-16 61 views
0

如果你正在使用NHibernate,可以使類聲明獨立於諸如Iesi.Collections.Generic.ISet<>之類的東西嗎?獨立域圖層

謝謝!

+1

它取決於子集合是否需要實現'ISet'是否需要使用它,就像子集合可以實現'IEnumerable'或任何其他接口一樣:) NHibernate使用'在類似的集合被引入.NET框架之前,Iesi.Collections' – 2012-01-16 13:06:38

+0

因爲下一件事我在問。我查看了「專業ASP.NET設計模式」,其中大部分內容都非常令人難以置信。特別是我提到了第7章的解釋!在一個解決方案中,作者可以靈活使用不同的'DataAccessLayer'實現。但他使用的模型不包含'Iesi'集合的引用,所以它的類似'乾淨'..我想使用NHibernate存儲庫實現。我不知道我應該保留像「IUnitOfWorkRepository」和「IUnitOfWork」這樣的合同以及相關的事情嗎? – lexeme 2012-01-16 13:34:25

+0

我認爲採取「換入和換出DataAccessLayer實現」的方法,例如某種類型的Repository模式,是它迫使該層僅能夠採用最低公共功能的分母,並且不適用於像NHibernate和Entity Framework等成熟ORM中可用的高級功能,例如各種讀取和加載策略。事實上,至少在我的經驗中,一個DataAccessLayer被另一個完整的實現取代是很少見的。順便說一句,你有沒有ASP.NET設計模式的頁面參考? – 2012-01-16 14:13:48

回答

1

大多數情況下,您可以讓您的類將集合展示爲ICollection < T>。請記住在構造函數中初始化它們。

+0

那麼NHibernate會將'ICollection '映射到'set'結構嗎? – lexeme 2012-01-17 06:30:38

+0

是的每個帳戶: http://ayende.com/blog/3971/nhibernate-tidbit-using-set-without-referencing-iesi-collections – JeffreyABecker 2012-01-17 20:54:50