Consulta agregada de NHibernate para relación uno a muchos

Tengo las siguientes 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>

Necesito cargar desde la base de datos la siguiente información: todos los temas (ID, en realidad Nombres, pero en este caso de demostración no importa) y dos campos másCountOfVotedUp, CountOfVotedDown (agregados). Entonces, como entiendo en el mundo de SQL, necesitamos uniones, agrupar por, caso y conteo.

¿Es posible obtener esta información con LINQ con menos operaciones con db? Me refiero a N + 1, selecciones adicionales, conexiones, etc.

Todo lo que probé es usar el LINQ de NH, pero se trata de agregados de consultas solo en Topic.Id y no pude contar ninguna de las recopilaciones de Votos.

Respuestas a la pregunta(1)

Su respuesta a la pregunta