Pregunta

Estoy tratando de puerto de un gráfico grande de entidades .NET utilizar NHibernate, pero me encuentro con un problema que la mayoría de las relaciones se definen solamente unidireccional - en la mayoría de los casos, la clase hija contiene una referencia a la matriz , pero el padre no contiene la colección de referencias a sus hijos. Sería bastante un poco de trabajo para agregar todas las colecciones de convertir las relaciones bidireccionales en otras más, por lo que me pregunto cuáles son las consecuencias para NHibernate serían de no hacerlo?

Una de las consecuencias que he notado es que las supresiones en cascada parecen fallar (el niño no se borran en el PP, causando una violación de integridad referencial). Es que la única consecuencia o existen otras cuestiones que tienen que ser conscientes de?

¿Existen directrices para que las relaciones deben ser uni o bidireccional?

Gracias

¿Fue útil?

Solución

Creo que no ser capaz de conectar en cascada las eliminaciones será el único problema con NHibernate per se.

Sin embargo, usted no será capaz de caminar con facilidad la gráfica. Puede hacerlo de hijo a padre, pero obviamente no de padre a hijo. Así que tendría que emitir una consulta cada vez que desea que todos los niño de un padre.

Así que si usted está usando NH por un modelo de dominio PERSISTED, donde se tiene un objeto raíz de la que es necesario utilizar los objetos secundarios para ciertas operaciones, que tendría que realizar consultas desde dentro del modelo para obtener los niños. Así que su modelo se acopla a su acceso a los datos.

O usted tendría que pasar a los niños al objeto padre como colecciones, pero entonces podría ser justo en fácil tener las colecciones en el modelo para comenzar tan ancho NH podía llenarlos para usted.

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