recuento de filas inesperado en Nhibernate al borrar registros primarios con registros secundarios asociados

StackOverflow https://stackoverflow.com/questions/2282626

Pregunta

Tengo una tabla primaria, órdenes y una tabla secundaria, [Detalles de pedidos], He fijado las asignaciones de fluido como -

(En la clase de pedido de los padres)

HasMany<OrderDetails>
(x => x.Details).KeyColumn("OrderId").Cascade.AllDeleteOrphan().Inverse();

(En el niño [Detalles de pedidos] clase)

References(x => x.ParentOrder).Column("OrderId").Not.Nullable().Cascade.None();

Estoy tratando de eliminar el objeto padre llamando -

session.Delete(parent);
session.Flush();

esto funciona solamente cuando sólo hay un registro hijo, si hay más de un registro secundario, los niños se borran, pero el padre no lo hace !!! Y consigo la temida - Error de recuento de filas inesperado

.

Estoy seguro de que esto es algo tonto que estoy haciendo, pero la pesca de arrastre a través de la web no ha aparecido nada.

Gracias

¿Fue útil?

Solución

Ok, me di cuenta de esto, fue que yo sea estúpida, pero entonces la respuesta podría ayudar a otra persona, así que aquí va.

El [Detalles de pedidos] tabla tiene una clave compuesta y está vinculada a los dos los órdenes [] y [Productos] mesa (Sí, esta es la base de datos Neptuno que estoy trabajando con). Para mi prueba, no me había asignado mi mesa los productos, y había marcado mi clase [Detalles de pedidos] con una sola clave primaria, en lugar de una clave compuesta. Por lo tanto, cuando Nhibernate elimina filas basándose en la clave, se espera ver sólo una fila siendo borrado mientras que existían múltiples en la base de datos. Es por eso que estaba recibiendo el error. Más bien inteligente de Nhibernate.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top