Buenos días al foro,

Tengo un problema que casi estoy seguro es de modelado, me gustaria que me
ayudaran a decirme como resolverlo con nhibernate.

Es simple, cuento con una entidad Factura la cual tiene su detalle de
movimientos en stock al que llamaré Detalle y el cual mapeo de la siguiente
manera:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Core"
namespace="Core">
  <class name="Factura" table="tblFacturas" lazy="false">
    <property name="Folio" column="folio"></property>
    <bag name="Detalle" inverse="true" cascade="all-delete-orphan"
lazy="false" order-by="partida">
      <key column="idFactura" on-delete="cascade"></key>
      <one-to-many class="Detalle"></one-to-many>
    </bag>
  </class>
</hibernate-mapping>

El asunto es que el usuario del sistema puede asignarle comisiones a
vendedores por Detalle de Factura y para soportar eso tengo la siguiente
asociación y mapping:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Core"
namespace="Core">
  <class name="Detalle" table="tblDetalles" lazy="false">
    <bag name="Comisiones" inverse="true" cascade="all-delete-orphan"
lazy="true" order-by="consecutivo">
      <key column="idDetalle" on-delete="cascade"></key>
      <one-to-many class="Comision"></one-to-many>
    </bag>
  </class>
</hibernate-mapping>

El problema del que les habia hablado se presenta al momento de eliminar un
Detalle de la Factura:

foreach (Detalle ddToDelete in listToDelete) {
  factura.Detalle.Remove(ddToDelete);
}

session.Update(factura);

El cual me lanza la siguiente excepción:

{"Instrucción DELETE en conflicto con la restricción REFERENCE
\"FK_tblComisiones_tblDetalles\". El conflicto ha aparecido en la base de
datos \"xxx\", tabla \"dbo.tblComisiones\", column 'idDetalle'.\r\nSe
terminó la instrucción."}

Error por una relación en la base de datos... ¿como podria darle soporte a
este problema?

Muchas gracias por leer y ayudar.



--
Roberto Ramírez
www.robertoramírez.com.mx <http://www.xn--robertoramrez-5ib.com.mx>

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a