¿Cómo se hace para cambiar el subtipo de una fila en NHibernate? Por ejemplo, si tengo una entidad Cliente y una subclase de TierOneCustomer, tengo un caso en el que necesito cambiar un Cliente a un Cliente TierOne, pero el Cliente TierOne debe tener el mismo Id (PK) que la entidad Cliente original.NHibernate - Cambio de subtipos
El mapeo es como la siguiente:
<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>
estoy usando el modelo de jerarquía de una sola tabla por clase, por lo que el uso normal-SQL, que sería sólo una cuestión de una actualización de SQL de la discriminator (CustomerType) y establecer las columnas apropiadas relevantes para el tipo. No puedo encontrar la solución en NHibernate, por lo que agradecería cualquier sugerencia.
También estoy pensando si el modelo es correcto teniendo en cuenta este caso de uso, pero antes de seguir por esa ruta, quiero asegurarme de que hacer lo que se describe arriba es realmente posible en primer lugar. Si no, seguramente pensaré en cambiar el modelo.
Sí, creo que voy a refactorizar la jerarquía y, probablemente, optar por el enfoque de propiedad simple. Gran respuesta, gracias. –