Pregunta

Hola a todos. Pregunta rápida sobre la sintaxis fluida. Pensé que tenía esto abajo, pero estoy teniendo un extraño fallo. Básicamente, tengo un tipo de estructura jerárquica que intento persistir, y todo parece funcionar, excepto cuando hago una prueba de integración real con el db.

Tengo un objeto Nodo que tiene una propiedad principal, que es otro nodo, y un campo _children que respalda una propiedad secundaria de sólo lectura, que también es una colección de nodos.

Las propiedades manejan la correlación de las relaciones, y los objetos en memoria prueban muy bien. Sin embargo, cuando los recupero del repositorio (una base de datos SQLite en memoria en mis pruebas), cualquier Node's Children se incluye a sí mismo por alguna razón. ¿Alguna idea?

Mis asignaciones se realizan principalmente con AutoMap, pero he anulado lo siguiente:

mapping.References(x => x.Parent);
mapping.HasMany(x => x.Children).Inverse().Access.LowerCaseField(Prefix.Underscore);

También lo he intentado sin la llamada Inverse ().

¿Fue útil?

Solución

Lo tengo. El problema era que tenía que decirle a la colección de niños en qué campo Id conectar para la clave externa.

Cambié esa asignación para que se vea así:

mapping.HasMany(m => m.Children)
  .Inverse()
  .KeyColumn("ParentId")
  .Access.CamelCaseField(Prefix.Underscore)
  .Cascade.All()
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top