Consulta agregada do NHibernate para relação um-para-muitos
Eu tenho as seguintes entidades:
<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>
Eu preciso carregar a partir do banco de dados a próxima informação - todos os tópicos (IDs, na verdade, nomes, mas neste caso de demonstração, não importa) e mais dois camposCountOfVotedUp, CountOfVotedDown (agregados). Então, como eu entendo no mundo SQL nós precisamos de joins, group by, case e count.
É possível obter essa informação com o LINQ com menos operações com o db? Quero dizer N + 1, seleções adicionais, conexões etc.
Tudo o que eu tentei - é usar o LINQ do NH, mas ele só agrega em Topic.Id e eu não pude contar nenhuma coleção de votos.