many-to-one无故引致一个Update语句
现有批次、批次产品两表,两者我只在批次产品中定义了一个many-to-one的关系
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="Supercargo.BatchItem,Supercargo" table="BatchItem">
<id name="ID" column="ID" type="Int64">
<generator class="native" />
</id>
<many-to-one name="Batch" class="Supercargo.Batch,Supercargo" column="Batch_ID"/>
<property name="ProductCode" type="string" length="50" />
<property name="IsConfirm" column="IsConfirm" type="Boolean" />
</class>
</hibernate-mapping>以下测试代码
SimpleExpression ex = Expression.Eq( "Batch.ID",1);
SimpleExpression ex2 = Expression.Eq( "ProductCode", "00005");
ICriterion crion = Expression.And(ex,ex2);
ICriteria cri = session.CreateCriteria(typeof(BatchItem));
cri.Add(crion);
IList list = cri.List(); 
ITransaction transaction = session.BeginTransaction();
transaction.Commit();
却不知何故产生了一个Updata Batch的语句
NHibernate :SELECT this.ID as ID1_, this.IsConfirm as IsConfirm1_,
FROM BatchItem this left outer join Batch batch1_ on this.Batch_ID=batch1_.ID WHERE this.ProductCode = @p0
NHibernate :UPDATE Batch SET Title = @p0,
AccepterName = @p7 WHERE ID = @p8
FROM BatchItem this left outer join Batch batch1_ on this.Batch_ID=batch1_.ID WHERE this.ProductCode = @p0NHibernate :UPDATE Batch SET Title = @p0,
AccepterName = @p7 WHERE ID = @p8真是莫名呀!请大家指点一二。谢谢

浙公网安备 33010602011771号