Muchas gracias Nestor.
Roberto Ramírez http://www.robertoramirez.com.mx 2010/9/26 Nestor Rodriguez <[email protected]> > Que bien que te haya funcionado. Lo de generar el esquema con NH es bien > util porque te evita problemas como el de olvidar colocar en un constraint > *on delete cascade. *Es vital que siempre verifiques cuales son las > implicaciones de cualquier configuracion. Una muy buena opcion, tal como lo > recomienda Fabio en su blog, es utilizar el SchemeValidator si no vas a > generar la BD desde NH. > > Saludos, > Nestor Rodriguez > > 2010/9/26 Fabio Maulo <[email protected]> > > dale una leida >> http://fabiomaulo.blogspot.com/2009/04/empezando-con-nhibernate.html >> >> 2010/9/26 J. Roberto Ramírez <[email protected]> >> >> Muchas gracias Diego, efectivamente la solución fue modificar la FK. >>> >>> >>> >>> >>> Roberto Ramírez >>> http://www.robertoramirez.com.mx >>> >>> >>> 2010/9/25 Diego Mijelshon <[email protected]> >>> >>> Es muy sencillo. En esta línea: >>>> <key column="idDetalle" on-delete="cascade"></key> >>>> ...le estás diciendo a NH que la base se encarga de hacer el cascade (lo >>>> cual es correcto y eficiente). >>>> Sin embargo, y al no haber generado el esquema con NH, esa relación NO >>>> está definida como ON DELETE CASCADE en la base y por eso te da ese error. >>>> Solución: modificar la FK para que sea ON DELETE CASCADE. >>>> >>>> Diego >>>> >>>> >>>> 2010/9/25 J. Roberto Ramírez <[email protected]> >>>> >>>>> 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 >>>>> >>>> >>>> -- >>>> Para escribir al Grupo, hágalo a esta dirección: >>>> [email protected] >>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>> >>> >>> -- >>> Para escribir al Grupo, hágalo a esta dirección: >>> [email protected] >>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>> >> >> >> >> -- >> Fabio Maulo >> >> -- >> Para escribir al Grupo, hágalo a esta dirección: >> [email protected] >> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >> > > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
