NHibernate中如何正确映射集合属性:set、list、map、bag、array?

2026-05-25 07:390阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1939个文字,预计阅读时间需要8分钟。

NHibernate中如何正确映射集合属性:set、list、map、bag、array?

set、bag、list、map的语义+集合最重要的一个特点是集合的语义。Java JPA中对Set、List、Collection、Map四种集合进行了定义(Java的Collection允许bag语义)。NHibernate在Hibernate移植时照搬了这些概念。

set, bag, list, map的语义
集合最重要的一点是集合的语义。Java JPA中对Set, List, Collection, Map四种集合进行了定义(Java的Collection允许bag语义),NHibernate从Hibernate移植时照搬了这些概念。但是.Net社区中这些概念比较弱,很多人对set, bag, map的说法很陌生,这也对NHibernate集合映射的使用造成一定障碍。

set
集合中的对象是唯一的,无序的,不能通过索引、key值访问,只能使用enumerator列举集合对象。
.Net没有原生的set类,所以NHibernate使用Iesi.Collections的set。
不同的set实现可能存在一些差异,因此导致set表现出来的特性不大一样,但在设计、使用上的主要原则是将set看作唯一、无序的。
Iesi.Collections中,基于System.Collections.SortedList实现的ListSet在列举集合对象时顺序跟添加到set的顺序一致,但基于System.Collections.HashTable实现的HashSet就不一致了。
阅读全文
标签:setListM

本文共计1939个文字,预计阅读时间需要8分钟。

NHibernate中如何正确映射集合属性:set、list、map、bag、array?

set、bag、list、map的语义+集合最重要的一个特点是集合的语义。Java JPA中对Set、List、Collection、Map四种集合进行了定义(Java的Collection允许bag语义)。NHibernate在Hibernate移植时照搬了这些概念。

set, bag, list, map的语义
集合最重要的一点是集合的语义。Java JPA中对Set, List, Collection, Map四种集合进行了定义(Java的Collection允许bag语义),NHibernate从Hibernate移植时照搬了这些概念。但是.Net社区中这些概念比较弱,很多人对set, bag, map的说法很陌生,这也对NHibernate集合映射的使用造成一定障碍。

set
集合中的对象是唯一的,无序的,不能通过索引、key值访问,只能使用enumerator列举集合对象。
.Net没有原生的set类,所以NHibernate使用Iesi.Collections的set。
不同的set实现可能存在一些差异,因此导致set表现出来的特性不大一样,但在设计、使用上的主要原则是将set看作唯一、无序的。
Iesi.Collections中,基于System.Collections.SortedList实现的ListSet在列举集合对象时顺序跟添加到set的顺序一致,但基于System.Collections.HashTable实现的HashSet就不一致了。
阅读全文
标签:setListM