2011-01-11 16 views
2

を返すためには、このようなNHibernateはクエリから辞書<int, string>を返すことが可能です:NHibernateの辞書<int, string>

CreateQuery("select CustomerId, FullName from Customer") 

私は、.NET ToDictionaryメソッドを使用して、このフォーラムからいくつかの例を試してみましたが、できないのですしましたそれらを働かせるために。

答えて

5

あなたはあなたのリストまたは列挙に次の操作を行う必要があり、あなたは、私が直接NHでこれを行うにはどのようにどのような方法を認識していないですdictonary

.ToDictionary(x => x.CustomerId, x => x.FullName); 
2

を取得する必要があります。 ISessionは提供していません。ICriteriaもありません。 IResultTransformerは単純なエンティティとエンティティのリストをリストに変換するだけです。

はもちろん、回避策があります:あなただけの辞書に変換できるようにするには、リストに結果を変換するため、

CreateQuery<Customer>("select CustomerId, FullName from Customer") 
.ToList<Customer>() // since now working on real objects 
.ToDictionary(x => x.CustomerId, x => x.FullName) 

はしかし、これは理想的ではありません。したがって、パフォーマンスを低下させる追加の変換が1つあります。

関連する問題