我有一个现有的数据库,其中包含表 Transactions。我添加了一个名为 TransactionSequence 的新表,其中每个事务最终只有一条记录。我们正在使用序列表来计算给定帐户的交易。我已将其映射为一对一映射,其中 TransactionSequence 具有 TransactionId 的主键。
约束是事务表上有一个代替触发器不允许更新已取消或已发布的事务。
因此,当计算序列并保存事务时,NHibernate 会尝试发送事务更新,例如 'UPDATE Transaction SET TransactionId = ? WHERE TransactionId = ?'。但是由于触发器,这失败了。如何配置我的映射,以便 NHibernate 在插入新的 TransactionSequence 表时不会尝试更新 Transaction 表?
事务映射:
<class name="Transaction" table="Transaction" dynamic-update="true" select-before-update="true">
<id name="Id" column="ID">
<generator class="native" />
</id>
<property name="TransactionTypeId" access="field.camelcase-underscore" />
<property name="TransactionStatusId" column="DebitDebitStatus" access="field.camelcase-underscore" />
<one-to-one name="Sequence" class="TransactionSequence" fetch="join"
lazy="false" constrained="false">
</one-to-one>
</class>
和序列映射:
<class name="TransactionSequence" table="TransactionSequence" dynamic-update="true">
<id name="TransactionId" column="TransactionID" type="Int32">
<generator class="foreign">
<param name="property">Transaction</param>
</generator>
</id>
<version name="Version" column="Version" unsaved-value="-1" access="field.camelcase-underscore" />
<property name="SequenceNumber" not-null="true" />
<one-to-one name="Transaction"
class="Transaction"
constrained="true"
foreign-key="fk_Transaction_Sequence" />
</class>
任何帮助将不胜感激...