如何在NHibernate中更改行的子类型?例如,如果我有一个Customer实体和TierOneCustomer的子类,我需要将Customer更改为TierOneCustomer,但是TierOneCustomer应该具有与原始Customer实体相同的Id(PK)。
映射看起来像这样:
<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>
我正在使用一张表对应一个类继承模型,因此如果使用纯SQL,则只需要更新鉴别器(CustomerType)并设置相关类型的适当列即可。我无法在NHibernate中找到解决方案,因此希望得到任何指导。
我也在思考是否正确地考虑了这种情况,但在走这条路之前,我想确保首先按照上述描述的方式实际上是可能的。如果不行,我几乎肯定会考虑更改模型。