Làm cách nào để bạn thay đổi kiểu phụ của một hàng trong NHibernate? Ví dụ: nếu tôi có một thực thể Khách hàng và một lớp con của TierOneCustomer, tôi có trường hợp tôi cần phải thay đổi một Khách hàng thành một TierOneCustomer nhưng TierOneCustomer phải có cùng một Id (PK) làm thực thể Khách hàng ban đầu.NHibernate - Thay đổi loại phụ
Việc lập bản đồ trông giống như sau:
<class name="Customer" table="SiteCustomer" discriminator-value="C">
<id name="Id" column="Id" type="Int64">
<generator class="identity" />
</id>
<discriminator column="CustomerType" />
... properties snipped ...
<subclass name="TierOneCustomer" discriminator-value="P">
... more properties ...
</subclass>
</class>
Tôi đang sử dụng một bảng cho mỗi lớp mô hình phân cấp, vì vậy sử dụng đơn giản-sql, nó muốn được chỉ là vấn đề của một bản cập nhật sql của discriminator (CustomerType) và thiết lập các cột thích hợp có liên quan cho loại. Tôi không thể tìm thấy giải pháp trong NHibernate, vì vậy sẽ đánh giá cao bất kỳ con trỏ.
Tôi cũng đang suy nghĩ xem mô hình có chính xác khi xem xét trường hợp sử dụng này hay không, nhưng trước khi tôi đi xuống tuyến đường đó, tôi muốn đảm bảo thực hiện như đã mô tả ở trên. Nếu không, tôi gần như chắc chắn sẽ nghĩ về việc thay đổi mô hình.
Vâng, tôi nghĩ tôi sẽ cấu trúc lại cấu trúc phân cấp và có thể chọn cách tiếp cận thuộc tính đơn giản. Câu trả lời tuyệt vời, cảm ơn. –