Имам съществуваща база данни с таблицата Transactions в нея. Добавих нова таблица, наречена TransactionSequence, където всяка транзакция в крайна сметка ще има само един запис. Ние използваме таблицата с последователности, за да преброим транзакциите за даден акаунт. Картографирах това като съпоставяне едно към едно, където TransactionSequence има първичен ключ на TransactionId.
Ограничението е, че в таблицата с транзакции има тригер вместо, който не позволява актуализации на отменени или публикувани транзакции.
Така че, когато последователността е изчислена и транзакцията е запазена, NHibernate се опитва да изпрати актуализация на транзакцията като 'UPDATE Transaction SET TransactionId =? WHERE TransactionId = ?'. Но това се проваля поради спусъка. Как мога да конфигурирам картографирането си така, че NHibernate да не се опитва да актуализира таблицата Transaction, когато се вмъкне нова таблица TransactionSequence?
Картографиране на транзакция:
<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>
Всяка помощ ще бъде високо оценена...