私は2つの列(文字列とブール)を返すNhibernateクエリを持っています。結果を辞書に変換したい私は、利用可能な変圧器がある知っているが、私は、これは辞書にNHibernate QueryOver結果を変換する
Session.QueryOver<Customer>()
.Where(x => x.Id == XXX)
.Select(x => x.Name, x => x.Moderator)
私は2つの列(文字列とブール)を返すNhibernateクエリを持っています。結果を辞書に変換したい私は、利用可能な変圧器がある知っているが、私は、これは辞書にNHibernate QueryOver結果を変換する
Session.QueryOver<Customer>()
.Where(x => x.Id == XXX)
.Select(x => x.Name, x => x.Moderator)
を働い取得する方法を確認していない私ははは(あなたがあなた自身を書くことができ)、これを行うことができ、変圧器であっ組み込まれているとは思わないが、それは可能性がありますクエリ結果を元に戻した後に少しだけLINQを書くだけで十分です。
辞書はどのように見えるかによって異なりますが、参考になる例があります。あなたがキーがtrue
またはfalse
であり、モデレータと非モデレータを表す辞書を取得したいとし、その値がモデレータの名前を持つList<string>
であるとします。その場合、あなたは書くことができます:List<object[]>
を使用して
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());
通常保守のための素晴らしいではありませんが、このような二つの性質のために、それはおそらく大丈夫です。より多くのプロパティを扱う場合は、クラスを作成してAliasToBean
を使用して、各行をそのクラスのインスタンスに変換することをお勧めします。
IDictionary
それは確かにOPが望むものである可能性があります。質問には必ずしも十分な情報がありません。 –
辞書のキーはどれですか? '名前'か 'モデレーター'? –