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

被折叠的 条评论
为什么被折叠?



