我有一个表格定义,如下所示:
执照
ClientId
Type
Total
Used
ClientId 和 Type 一起唯一标识一行。我有一个映射文件,如下所示:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true">
<class name="Acumen.AAM.Domain.Model.License, Acumen.AAM.Domain" lazy="false" table="License">
<id name="ClientId" access="field" column="ClientID" />
<property name="Total" access="field" column="Total"/>
<property name="Used" access="field" column="Used"/>
<property name="Type" access="field" column="Type"/>
</class>
</hibernate-mapping>
如果客户使用许可证创建用户,我需要更新表中的 Used 列。当我在映射 xml 中将 ClientId 列设置为该表的 id 列时,我得到了 TooManyRowsAffectedException。
您能否让我知道如何在映射级别设置复合键,以便 NHibernate 可以根据 ClientId 和 Type 进行更新。
类似于:Update License SET Used=Used-1 WHERE ClientId='xxx' AND Type=1
请帮忙。
谢谢, 马赫什