NHibernate是从Hibernate移植过来的基于NET平台的一个ORM框架,同时跟这框架一起的还有一个开源库,叫做Iesi.Collections,这个库扩展了NET平台下面的几个集合,所谓集合,最重要的就是集合的语言,我们NET平台中可能IList,IDictionary用的比较多,但是其实还有像Set,Bag等等的存在,像在Python中,就有List列表跟Set集合的存在。
那么在用NHibernate进行开发的时候我们还如何来进行选择呢?
首先我们需要明确的是我们要知道这几个东西的区别。
- Set:它是一个无序的,里面对象是唯一的,不允许有重复数据的存在,这点像Python中的Set,名字都一样。
- Bag:跟Set一样,唯一的区别就是它允许时面的元素重复,好像NET平台没有原生存在,在PowerCollections这个库中有实现。
- List:它是一个有序集合,允许有重复数据的存在。
- Map:它是一个键值对,属于无序集合,里面的键值不允许重复,在NET平台有原生类存在,即IDictionary。
好了,知道上面这些后就可以项目中根据具体的需求来进行选择了。