📅  最后修改于: 2023-12-03 14:44:36.414000             🧑  作者: Mango
NHibernate 是一个流行的 .NET ORM (对象关系映射) 框架,提供了持久化实体对象到关系型数据库的方便性。NHibernate 支持集合类型的映射,使得实体对象与关联的集合对象可以自动进行增删改查操作,从而简化了开发者的工作量。
NHibernate 支持以下集合类型的映射:
下面是一个使用 IList 映射集合的示例:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="Category" table="Categories">
<id name="Id" column="CategoryId">
<generator class="native" />
</id>
<property name="Name" column="CategoryName" />
<bag name="Products" inverse="true" cascade="all-delete-orphan">
<key column="CategoryId" />
<one-to-many class="Product" />
</bag>
</class>
</hibernate-mapping>
这里我们定义了一个类 Category,它包含了一个 IList 类型的 Products 属性,该属性映射到数据库中 Categories 表和 Products 表之间的一对多关系。bag 元素用于配置关联集合映射,其中包括 key 元素和 one-to-many 元素,它们用于指定关联的键和值的映射关系。同时,我们还指定了 inverse="true" 和 cascade="all-delete-orphan" 属性,分别用于启用级联删除和反向关联映射。
对于字典类型和第三方集合类型的映射,其配置方式与上面类似,只需要将 bag 元素替换为 map 元素和 set 元素即可。
NHibernate 集合映射提供了多种映射方式和高度可定制化的配置选项,可以根据实际需求选择最适合的方式进行映射。同时,NHibernate 还支持 LINQ 查询和 NHibernate Query Language 查询等强大的查询方式,以及缓存、事务、延迟加载等特性,使得开发者可以轻松地编写出高质量的数据访问代码。