Tôi có một cơ sở dữ liệu hiện có với bảng Giao dịch trong đó. Tôi đã thêm một bảng mới gọi là TransactionSequence, nơi mỗi giao dịch cuối cùng sẽ chỉ có một bản ghi. Chúng tôi đang sử dụng bảng tuần tự để tính các giao dịch cho một tài khoản nhất định. Tôi đã ánh xạ này như là một bản đồ một-một trong đó TransactionSequence có một khóa chính của TransactionId.NHibernate một-một bản đồ nơi dữ liệu bảng thứ hai có thể là null
Ràng buộc là có thay vì kích hoạt trên bảng giao dịch không cho phép cập nhật giao dịch bị hủy hoặc đăng.
Vì vậy, khi trình tự được tính toán và giao dịch được lưu, NHibernate cố gửi bản cập nhật về giao dịch như 'UPDATE Transaction SET TransactionId =? WHERE TransactionId =? '. Nhưng điều này không thành công vì kích hoạt. Làm thế nào tôi có thể cấu hình lập bản đồ của tôi để NHibernate sẽ không cố gắng cập nhật bảng giao dịch khi một bảng TransactionSequence mới được chèn vào?
giao dịch lập bản đồ:
<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>
Và các bản đồ trình tự:
<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>
Bất kỳ trợ giúp sẽ được đánh giá cao ...
Bạn có ví dụ về cách sử dụng các liên kết 2 "nhiều người" không? Nguyên nhân một trong số họ cần sử dụng khóa ngoại của bảng kia. –