2009-05-15 2 views
0

ein Aggregat Wurzel X gegeben, die viele Y hat, und Y, die viele Z ...NHibernate - Bohren von der aggregrate Wurzel nach unten

Wie ich durch die Verbände einen Drilldown und wählen einzigem die diese X, dessen Z einen bestimmten Eigenschaftswert haben?

IList Xs = Session.CreateCriteria (typeof (X)) .CreateAlias ​​("Ys", "Y") .CreateAlias ​​("Y.Zs", "Z") .Add (Expression.Eq ("Z.Property", 1)) .List();

Dies führt zu einer PropertyAccessException, und ich habe keine Ahnung warum.

Das Laden aller X und das Testen ihrer Z-Eigenschaften wäre massiv redundant.

+0

kann es hilfreich sein, wenn Sie Real-World-Zuordnungen und Namen und die XML-Zuordnungsdatei angeben, zumindest den Abschnitt, der X, Y und Z betrifft. –

Antwort

1

Ich habe es ausprobiert, und in meinem Test-Setup funktioniert es einwandfrei. Ein PropertyAccessExcetion kann über einen nicht verfügbaren Setter oder einen Typenkonflikt sein, wenn eine Eigenschaft festgelegt ist. Wenn Sie einen Mapping- und Entity-Source-Code veröffentlichen würden, könnte dies hilfreich sein.