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>