nHibernate使用什么类型的返回类型?列表<T> </T>

时间:2009-07-23 14:27:49

标签: nhibernate

我想创建我的数据库层,以便我可以将其交换出来并在将来使用说LINQ或其他任何内容。

在我的抽象类(或接口)中,我应该使用什么返回类型来返回列表/项集合的结果?

nHibernate会返回List吗?

1 个答案:

答案 0 :(得分:2)

您应该使用IList<T>。 NHibernate总是从它的集合中返回IList<T>,文档说:

  

集合映射的名称   是一个显而易见的地方   Java和.NET之间存在差异   所示。 Java的集合库有   比以往更多的选择   System.Collection确实。

* The <list> maps directly to an IList.
* The <map> maps directly to an IDictionary.
* The <bag> maps to an IList. A <bag> does not completely comply with
     

IList接口,因为Add()   方法不保证返回   正确的指数。可以添加一个对象   到没有初始化的   IList的。一定要隐藏   来自API消费者的IList   或者做好记录。       *映射到Iesi.Collections.ISet。那个界面   是Iesi.Collections的一部分   与NHibernate一起发布的程序集。

不仅如此,对接口进行编码通常也是一种很好的做法,而不是抽象。