NHibernate-Aggregatabfrage für eine Eins-zu-Viele-Beziehung
Ich habe folgende Entitäten:
<code>class Topic { public virtual int Id {get; private set;} public virtual ICollection<Vote> Votes {get; private set; } } class Vote { public virtual Topic Topic {get; private set;} public virtual VoteType VotedTo {get; private set;} // enum VotedUp, VotedDown } </code>
Ich muss aus der Datenbank die nächsten Informationen laden - alle Themen (IDs, eigentlich Namen, aber in diesem Demo-Fall ist es egal) und zwei weitere FelderCountOfVotedUp, CountOfVotedDown (Aggregate). So wie ich es in der SQL-Welt verstehe, brauchen wir Joins, Group By, Case und Count.
Ist es möglich, diese Informationen mit LINQ mit weniger Operationen mit db zu erhalten? Ich meine N + 1, zusätzliche Auswahlen, Verbindungen usw.
Ich habe nur versucht, NHs LINQ zu verwenden, aber es handelt sich nur um Abfrage-Aggregate für Topic.Id, und ich konnte keine der Votes-Auflistungen zählen.