Domanda

Ciao a tutti. Domanda veloce sulla sintassi fluida. Avevo pensato di averlo eliminato, ma sto ottenendo uno strano fallimento. Fondamentalmente, ho un tipo di struttura gerarchica che sto cercando di persistere, e tutto sembra funzionare, tranne quando faccio un vero test di integrazione con il db.

Ho un oggetto Node che ha una proprietà Parent, che è un altro Node, e un campo _children che supporta una proprietà Children di sola lettura, che è anche una raccolta di Nodes.

Le proprietà gestiscono la correlazione delle relazioni e gli oggetti in memoria vengono eseguiti correttamente. Quando li recupero dal repository (un db SQLite in memoria nei miei test), tuttavia, i Node's Children si includono per qualche motivo. Qualche idea?

I miei mapping sono per lo più eseguiti con AutoMap, ma ho ignorato quanto segue:

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

L'ho provato anche senza la chiamata Inverse ().

È stato utile?

Soluzione

Capito. Il problema era che dovevo dire alla raccolta di bambini in quale campo ID agganciare la chiave esterna.

Ho cambiato quella mappatura per assomigliare così:

mapping.HasMany(m => m.Children)
  .Inverse()
  .KeyColumn("ParentId")
  .Access.CamelCaseField(Prefix.Underscore)
  .Cascade.All()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top