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.

questionAnswers(1)

yourAnswerToTheQuestion