NHibernate 非自增主键与自增主键的映射文件配置

本文介绍了NHibernate中非自增主键和自增主键的映射文件配置方法,帮助理解如何在不同场景下设置字段属性。
在用NHibernate的时候,
当有表中的主键是数据库自动生成的时候(即设置的自增)将使用native:<generator class="native"></generator>
而当是自己填写的时候则需要改为assigned:<generator class="assigned"></generator>
否则将会出现异常! 以上是映射文件的配置中需要注意的

NHibernate 非自增主键:

<?xml version="1.0"  encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
	<class name="IWOMTracker.Data.Model.SEC_ItemAll, IWOMTracker.Data.Model" table="SEC_ItemAll">
		<id name="Item_ID" column="Item_ID" type="System.Int32"  unsaved-value="0">
      <generator class="assigned" />  (备注:非自增主键应该配置为assigned属性)     			
    </id>
		<property name="Task_ID" column="Task_ID" type="System.Int32"  />
		<property name="Brand_ID" column="Brand_ID" type="System.Int32"  />
		<property name="Item_URL" column="Item_URL" type="System.String"  />
		<property name="Item_URLKey" column="Item_URLKey" type="System.String"  />
		<property name="Item_Title" column="Item_Title" type="System.String"  />
		<property name="Item_Content" column="Item_Content" type="System.String"  />
		<property name="Item_SDate" column="Item_SDate" type="System.DateTime"  />
		<property name="Item_CDate" column="Item_CDate" type="System.DateTime"  />
		<property name="Item_State" column="Item_State" type="System.Int32"  />
		<property name="Item_UDate" column="Item_UDate" type="System.DateTime"  />
		<property name="Admin_ID" column="Admin_ID" type="System.Int32"  />
		<property name="Item_ReleaseDate" column="Item_ReleaseDate" type="System.DateTime"  />
		<property name="Item_Author" column="Item_Author" type="System.String"  />
		<property name="Item_Keyword" column="Item_Keyword" type="System.String"  />
		<property name="Item_ReplyCount" column="Item_ReplyCount" type="System.Int32"  />
		<property name="Item_VisitCount" column="Item_VisitCount" type="System.Int32"  />
		<property name="Task_KeyWord" column="Task_KeyWord" type="System.String"  />
		<property name="SearchEngine_ID" column="SearchEngine_ID" type="System.Int32"  />
		<property name="Item_Info" column="Item_Info" type="System.String"  />
		<property name="Item_IsArtificial" column="Item_IsArtificial" type="System.Int32"  />
		<property name="Item_Attitude" column="Item_Attitude" type="System.Int32"  />
		<property name="Item_SiteName" column="Item_SiteName" type="System.String"  />
		<property name="Item_Inspection" column="Item_Inspection" type="System.Int32"  />
		<property name="Item_Area" column="Item_Area" type="System.String"  />
		<property name="Remark" column="Remark" type="System.String"  />
		<property name="PickupType" column="PickupType" type="System.Int32"  />
	</class>
</hibernate-mapping>

NHibernate 增主键:

<?xml version="1.0"  encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
	<class name="IWOMTracker.Data.Model.SEC_ItemTwoMonth, IWOMTracker.Data.Model" table="SEC_ItemTwoMonth">
		<id name="Item_ID" column="Item_ID" type="System.Int32" unsaved-value="0">
      <generator class="native" />  (备注:非自增主键应该配置为native属性,并且在sql server中设置为主键+自增长。不然会报错:undefine null)     			
    </id>
		<property name="Task_ID" column="Task_ID" type="System.Int32"  />
		<property name="Brand_ID" column="Brand_ID" type="System.Int32"  />
		<property name="Item_URL" column="Item_URL" type="System.String"  />
		<property name="Item_URLKey" column="Item_URLKey" type="System.String"  />
		<property name="Item_Title" column="Item_Title" type="System.String"  />
		<property name="Item_Content" column="Item_Content" type="System.String"  />
		<property name="Item_SDate" column="Item_SDate" type="System.DateTime"  />
		<property name="Item_CDate" column="Item_CDate" type="System.DateTime"  />
		<property name="Item_State" column="Item_State" type="System.Int32"  />
		<property name="Item_UDate" column="Item_UDate" type="System.DateTime"  />
		<property name="Admin_ID" column="Admin_ID" type="System.Int32"  />
		<property name="Item_ReleaseDate" column="Item_ReleaseDate" type="System.DateTime"  />
		<property name="Item_Author" column="Item_Author" type="System.String"  />
		<property name="Item_Keyword" column="Item_Keyword" type="System.String"  />
		<property name="Item_ReplyCount" column="Item_ReplyCount" type="System.Int32"  />
		<property name="Item_VisitCount" column="Item_VisitCount" type="System.Int32"  />
		<property name="Task_KeyWord" column="Task_KeyWord" type="System.String"  />
		<property name="SearchEngine_ID" column="SearchEngine_ID" type="System.Int32"  />
		<property name="Item_Info" column="Item_Info" type="System.String"  />
		<property name="Item_IsArtificial" column="Item_IsArtificial" type="System.Int32"  />
		<property name="Item_Attitude" column="Item_Attitude" type="System.Int32"  />
		<property name="Item_SiteName" column="Item_SiteName" type="System.String"  />
		<property name="Item_Inspection" column="Item_Inspection" type="System.Int32"  />
		<property name="Item_Area" column="Item_Area" type="System.String"  />
		<property name="Remark" column="Remark" type="System.String"  />
		<property name="PickupType" column="PickupType" type="System.Int32"  />
	</class>
</hibernate-mapping>

 

自己要看一下,NHibernate字段的属性设置了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值