Je ne pense il y a un transformateur intégré qui peut le faire (vous pouvez écrire votre propre), mais il pourrait Soyez assez simple pour écrire un peu de LINQ après avoir obtenu les résultats de la requête est assez bon.
Cela dépend de ce à quoi vous voulez que votre dictionnaire ressemble, mais voici un exemple qui pourrait vous aider. Dites que vous vouliez obtenir un dictionnaire où la clé est true
ou false
, représentant des modérateurs et des non-modérateurs, et la valeur est List<string>
avec les noms des modérateurs. Dans ce cas, vous pouvez écrire:
IDictionary<bool, List<string>> moderatorDictionary = session.QueryOver<Customer>()
.Select(
x => x.Name,
x => x.Moderator
)
.List<object[]>()
.GroupBy(x => (bool)x[1], x => (string)x[0])
.ToDictionary(grp => grp.Key, grp => grp.ToList());
L'utilisation List<object[]>
est généralement pas grand pour maintenabilité, mais pour deux propriétés comme cela, il est probablement correct. Si vous travaillez avec plus de propriétés, il est préférable de créer une classe et d'utiliser AliasToBean
pour transformer chaque ligne en une instance de cette classe.
Quelle est la clé dans le dictionnaire? 'Nom' ou' Modérateur '? –