首页 > 代码库 > Nhibernate中一对多映射——双向关联
Nhibernate中一对多映射——双向关联
上一篇博客中提到的是单向关联: Nhibernate一对多映射——单向关联。这篇说说双向关联。
双向关联和单向关联的区别是:两边都能维护关系,如我查询两边的任何一边,另外一边的信息也能查询出来,其他的修改删除只要设置了,也都可以。体现在代码中是:因为上篇单向关联是在DictionaryEntity上,所以变为双向关联要在DictionTypeEntity和他对应的xml文件中加上关联映射。
DictionaryEntity修改为:
#region 实体属性 /// <summary> /// 类型 /// </summary> public virtual string Type { get;set; } /// <summary> /// 类型名称 /// </summary> public virtual string TypeName { get; set; } /// <summary> /// 时间戳 /// </summary> public virtual string TimeStamp { get;set; } /// <summary> /// 操作用户 /// </summary> public virtual string AddUser{ get; set; } /// <summary> /// 字典实体list集合 /// </summary> public virtual IList<DictionaryEntity> DictionaryEntitys { get; set; } #endregion
DictionaryEntity对应的xml文件:
<?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> <class name="Model.Entity.DictionaryTypeEntity, Model" table="T_DictionaryManage"> <id name="DictionaryType" type="String" unsaved-value=http://www.mamicode.com/"null">>
此时,如果我们查询了DictionaryEntity的信息,想知道DictionaryTypeEntity的Value的信息,只要在DictionaryEntity.DictionaryType.Value就能查询出来我们想要的值。如果我们想保存DictionaryEntity的信
息,我们得先实例化一个DictionaryTypeEntity,并赋值给DictionaryEntity.DictionaryType。如下:
DictionaryTypeEntity enDictionaryType=new DictionaryTypeEntity(); DictionaryEntity enDictionary=new DictionaryEntity(); enDictionary.DictionaryType=enDictionaryType;
这样就不会报“未对对象实例化”的错误了。这样是不是简单多了,避免以前的联合查询啥的了。Nhibernate中一对多映射——双向关联
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。