Question

Salut à tous. Petite question sur la syntaxe Fluent. J'avais pensé que j'avais ce problème, mais j'ai un échec bizarre. En gros, j’essaie de conserver un type de structure hiérarchique que tout semble fonctionner, sauf lorsque j’effectue un test d’intégration avec la base de données.

J'ai un objet Node qui a une propriété Parent, qui est un autre nœud, et un champ _children sauvegardant une propriété en lecture seule Children, qui est également une collection de nœuds.

Les propriétés gèrent la corrélation des relations et les objets en mémoire sont correctement testés. Lorsque je les récupère du référentiel (une base de données SQLite en mémoire dans mes tests), tout enfant de nœud s’inclut pour une raison quelconque. Des idées?

Mes mappages sont généralement effectués avec AutoMap, mais j'ai remplacé les éléments suivants:

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

Je l'ai aussi essayé sans l'appel Inverse ().

Était-ce utile?

La solution

Compris. Le problème était que je devais dire à la collection d'enfants à quel champ Id se connecter pour la clé étrangère.

J'ai changé cette correspondance pour ressembler à ceci:

mapping.HasMany(m => m.Children)
  .Inverse()
  .KeyColumn("ParentId")
  .Access.CamelCaseField(Prefix.Underscore)
  .Cascade.All()
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top