2012-01-16 71 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