NHibernate eins-zu-eins-Zuordnung, wo die zweite Tabelle die Daten können null sein

Ich habe eine bestehende Datenbank mit der Tabelle der Transaktionen. Ich habe eine neue Tabelle namens TransactionSequence, wo jede Transaktion, die letztendlich nur einen Datensatz. Wir sind mit der Sequenz-Tabelle zu zählen, die Transaktionen für ein bestimmtes Konto. Ich habe zugeordnet, dies als eine eins-zu-eins-Zuordnung, wo TransactionSequence hat einen primären Schlüssel, der Transaktions-id.

Die Einschränkung ist, dass es ein instead of-trigger für die Transaktion Tabelle nicht Aktualisierungen von storniert oder gebucht Transaktionen.

So, wenn die Sequenz wird berechnet und der Transaktion gespeichert, NHibernate zu senden versucht ein update auf die Transaktion wie 'UPDATE-Transaktion Transaktions-id = ? WO Transaktions-id = ?'. Aber dies schlägt fehl, da der trigger. Wie kann ich konfigurieren mein mapping so, dass NHibernate wird nicht versuchen, ein update der transaktionstabelle, wenn eine neue TransactionSequence Tabelle eingefügt wird?

Transaktion Abbildung:

<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>

Und die Reihenfolge, Zuordnung:

<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>

Jegliche Hilfe würde sehr geschätzt werden...

InformationsquelleAutor SteveBering | 2008-10-28

Schreibe einen Kommentar