NHibernate composite-id联合主键配置

本文介绍了复合主键的概念及其实现方式,包括定义复合主键类并重写Equals与GetHashCode方法,以及如何在ORM框架中配置复合主键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 复合主键 主键字段都不容许为null,如果有一个为null的话 那么整个对象就是null

 2  复合主键类 需要重新一些方法

 

复合主键类如下

   [Serializable]
    public class  DoorinfoCompositeID
    {
     
        public virtual string  DoorID { get; set; }

     
        public virtual string  AICID { get; set; }


        public override bool Equals(object obj)
        {
            return base.Equals(obj);
        }


        public override int GetHashCode()
        {
            return base.GetHashCode();
        }
    }

 

主体类如下


    public class  AICDoorinfo
    {
       

        public virtual GisBuildAICDoorinfoCompositeID ID
        {
            get;
            set;
        }
        //单元名称
        public virtual string UnitNoName { get; set; }
     
    }

 

主体类的映射文件配置如下

 

<class name="AICDoorinfo">

  <composite-id name="ID" class="Model.Entities.GisBuildAICDoorinfoCompositeID,Model">
   <key-property name="DoorID" column="DoorID" type="string" ></key-property>
   <key-property name="AICID" column="AICID" type="string" ></key-property>
  </composite-id>
  <property name="UnitNoName" column="UnitNoName" type="string"  />
 </class>

 

 

还有更为简洁方式如:

 

<composite-id>
   <key-property  name="DoorID" column="DoorID" type="int"></key-property>
   <key-property  name="AICID" column="AICID"  type="int"></key-property>
  </composite-id>

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值