以下に示すテーブル定義があります。
ライセンス
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>
クライアントがライセンスを使用してユーザーを作成した場合、テーブルの [使用済み] 列を更新する必要があります。マッピング xml でこのテーブルの id 列として ClientId 列を設定すると、TooManyRowsAffectedException が発生します。
NHibernate が ClientId と Type に基づいて更新できるように、マッピング レベルで複合キーを設定する方法を教えてください。
次のようなもの: Update License SET Used=Used-1 WHERE ClientId='xxx' AND Type=1
助けてください。
ありがとう、マヘシュ