为了程序方便,本人在子表的程序中做了如下设置
ChildInfo.ID = 0 - ParentInfo.Childs.Count;
这样在插入主表数据时,就遇到了这样的问题,
子表ChildInfo因为ID赋了值,所有出现
[NHibernate.HibernateException] = {"SQL insert, update or delete failed (expected affected row count: 1, actual affected row count: 0). Possible causes: the row was modified or deleted by another user, or a trigger is reporting misleading row count."}
这样的错误。
请教,如何只修改Xml文件,让程序不管子表的ID有没有赋值,让它自增?主表的XML如下:
<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0" namespace="Star.Model.TeamTravel" assembly="Star.Model">
<class name="ProTeamInfo" table="t_ProTeam">
<id name="ID" column="ID" type="Int32" unsaved-value="0">
<generator class="hilo">
<param name="table">t_ProTeamIdentity</param>
<param name="column">ProTeamID</param>
<param name="max_lo">0</param>
</generator>
</id>
<property name="CreateTime"/>
        <bag name="JourneyList" cascade="all" lazy="false" >
            <key column="ProID"/>
            <one-to-many class="ProTeamJourneyInfo"/>
        </bag>
        
</class>
</hibernate-mapping>子表XML:
<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0" namespace="Star.Model.TeamTravel" assembly="Star.Model">
<class name="ProTeamJourneyInfo" table="t_ProTeamJourney">
<id name="ID" column="ID" type="Int32" unsaved-value="null">
<generator class="hilo">
<param name="table">t_ProTeamIdentity</param>
<param name="column">ProTeamJourneyID</param>
<param name="max_lo">0</param>
</generator>
</id>
        <property name="DayNum"/>
<property name="SN"/>
<property name="StartTime"/>
<property name="EndTime"/>
<property name="JourneyDesc"/>
        <property name="UseProID"/>
        <many-to-one name="ProTeam" column="ProID" class="ProTeamInfo"/>
</class>
</hibernate-mapping>