上一篇主要介绍了NHibernate映射文件的基础配置,这篇我们介绍下NHibernate的一对多及多对一配置(文中我直接使用双向关联,即一和多两端都配置,开发中可以只使用一端),同时略带介绍下NHibernate.Mapping.Attributes方式配置表映射。
首先,我们使用Parent和Children两个类,Parent为一端,Chrildren为多端。
下面是Parent类和映射文件配置:
1 | namespace NHibernateStudy.OneToMany |
1 |
|
其中cascade我配置了all,保证级联更新,若有其他需求可以使用none等值。
下面是Children类及配置文件:
1 | namespace NHibernateStudy.OneToMany |
其中需要注意,many-to-one中,column写的是当前表的字段——外键;而配置一端时,其中key里的column配置的是多端的字段,即子表里的外键,而非当期表字段。
配置文件中添加mapping:
1 | <mapping resource="NHibernateStudy.OneToMany.Parent.hbm.xml" assembly="NHibernateStudy" /> |
下面是使用方式过程:
1 |
|
下面介绍下Attributes方式配置映射文件。
首先添加NHibernate.Mapping.Attributes引用,可以在nuget中查找。
下面是配置的类,使用此法可以避免使用hbm.xml的繁琐,其中的属性与hbm.xml中的基本一致。
1 | namespace NHibernateStudy |
不过需要注意的是,在代码中使用的时候,需要使用以下方式加载Mapping。
1 | Configuration cfg = new Configuration(); |
下面是具体使用过程:
1 |
|