关于Fluent NHibernate一对一关联关系使用session.Refresh的问题

原创 2016年08月30日 11:49:49

在一对一关联关联的时候调用session.Refresh出现More than one row with the given identifier was found:异常的问题,首先在确保数据没有问题的前提下,是因为map配置导致的问题

(这个问题困扰俺几天,最后误打误撞的搞定了,泪奔啊。。。大哭大哭大哭

请注意红丝字体

正确的示例map(用户对用户详情)如下

 public class UsersMap : ClassMap<Users>
    {
        public UsersMap()
        {
            Table("Users");
            LazyLoad();
            Id(x => x.UserID).GeneratedBy.Assigned().Column("UserID").Length(32);
            HasOne(u => u.Detail).Cascade.All().
ForeignKey("_User"); //而不是PropertyRef,切记
            Map(x => x.Name).Column("Name").Length(32);
            Map(x => x.sex).Column("sex").Length(32);
        }
    }

详情map

 public class UserDetailsMap : ClassMap<UserDetails>
    {
        public UserDetailsMap()
        {
            Table("UserDetails");
            LazyLoad();
            Id(u => u.UserID).Column("UserID")
.GeneratedBy.Foreign("_User");
         
  HasOne(d => d._User).Constrained().Cascade.SaveUpdate();//这个必须要不然在刷新Refresh的时候又要加载一遍
            Map(x => x.Birthday).Column("Birthday");
            Map(x => x.address).Column("address").Length(80);
        }
    }

版权声明:本文为博主原创文章,未经博主允许不得转载。

【架构之路之ORM】--FluentNHibernate之基本映射详解

在没有FluentNHibernate的情况下,如果使用NHibernate来做数据库映射,那么首先需要安装NHibernate(也就是应用Nhibernate.dll),然后创建Nhibernate...

FluentNHibernate之基本映射详解

它是流畅版的NHibernate,支持所有的NHibernate功能,而且还封装了配置文件的映射功能,也就是说可以将映射使用C#代码编写,这样在维护时就会很简单。        在没有FluentNH...
  • cqkxzyi
  • cqkxzyi
  • 2015年05月15日 09:38
  • 787

Fluent NHibernate之旅(四)-- 关系

今天我们将说一下ORM中的R映射,我们现在的数据库大多都是关系型数据库了,所以可以说关系在我们数据库设计中也是非常重要的部分,NHibernate也非常重视这一块,但在传统方式中,配置就比较麻烦,不是...
  • eqera
  • eqera
  • 2012年12月24日 09:33
  • 4074

hibernate一对一关联关系

  • 2011年10月11日 18:18
  • 9.05MB
  • 下载

JPA_3_一对一关联关系源码

  • 2016年05月30日 15:01
  • 5.79MB
  • 下载

使用session.createFilter()完成one-to-many关联关系的集合过滤

使用session.createFilter()能够过滤关联实体的集合。A collection filter is a special type of query that can be appli...

hibernate一对一的关联关系demo

  • 2015年04月09日 14:24
  • 1.55MB
  • 下载

JPA学习笔记(10)——映射双向一对一关联关系

双向一对一关联关系 一个部门有一个经理,一个经理管一个部门 Department实体类 package com.jpa.helloworld2; import javax.persistence...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于Fluent NHibernate一对一关联关系使用session.Refresh的问题
举报原因:
原因补充:

(最多只允许输入30个字)