Ich versuche, alle Sammlungen (nicht-kartesischen Produkt) einer übergeordneten Entität abrufen, aber nicht herausfinden, wie man die Enkelkinder bekommen. Tabellenstruktur wie folgt aussieht:NHibernate, erhalten Enkelkinder Sammlung mit QueryOver w/Future
Der folgende Code bekommt meine Eltern und seine Child1 und Child2 Sammlungen sowie seine ParentChild3 Sammlung, aber ich weiß nicht, wie die Abfrage strukturieren die Child3 Enkelkinder zu erhalten (und verschiebe sie auf Future()).
var parent = _session
.QueryOver<Parent>()
.Where(x => x.Id == id)
.Future<User>();
var children1 =_session
.QueryOver<Parent>()
.Where(x => x.Id == id)
.Fetch(x => x.Children1).Eager
.Future<Parent>();
var children2 =_session
.QueryOver<Parent>()
.Where(x => x.Id == id)
.Fetch(x => x.Children2).Eager
.Future<Parent>();
var parentChildren3 =_session
.QueryOver<Parent>()
.Where(x => x.Id == id)
.Fetch(x => x.ParentChildren3).Eager
.Future<Parent>();
// how to get children3, now?
return parent.SingleOrDefault();
Semi-verwandt: Ist dies der beste Weg, um alle Sammlungen zu bekommen? Ist es besser (und möglich), eine Abfrage zu verwenden, die das Ergebnis stattdessen mit Joins erhält?
Leider muss ich es als Verbund Karte (und während dieser nicht Nutzlast Spalten enthält, andere tun), ich so kommt mit ManyToMany nicht durch. – heyseuss