2009-03-18 4 views

答えて

7

用途:

Context.EntitySetName.AsEnumerable().ToDictionary(o => o.Key, o => o.Value); 

この上のいくつかの詳細:

ToDictionaryはエンティティへのLINQでサポートされていません。つまり、ToDictionaryを含むLINQクエリ文字列はコンパイルされますが、実行されません。これは、Entity FrameworkがSQLに変換する方法を知らないためです。したがって、まずデータベースサーバーでクエリを実行する必要があります。したがって、あなたのセットをまずリストに投影して、エンティティセットを列挙しなければなりません。 AsEnumerableはこれを行います。明らかに、エンティティセットが大きい場合、おそらく全体でこれをしたくないでしょう。 Where呼び出しまたはLINQクエリを使用して、結果セットをディクショナリで最初に必要な項目のみに減らします。

0

私はあなたの質問を完全に理解しているとは思わない。あなたのデータベーステーブルをIDictionaryプロパティにバインドする方法はわかりませんが、それはあなたが参照しているものですが、辞書を構築するのに必要なプロパティやメソッドを作成して渡すことができます。何らかの理由でビジネスオブジェクトメソッドを作成することはできませんか?

+0

例:オブジェクト、プロパティ、B、C、X、Y、Zを有します。そして、私は、辞書としてキーと値のx、y、zの値域のプロパティーx、y、zが必要です。 –

関連する問題