2009-08-31 9 views
2

この質問は、this questionに似ていますが、全く同じではありません。IDictionary <string、object>へのlinqによる動的クエリ?

私は、LINQからSQLへのデータコンテキストで動的クエリを作成し、キーは列の名前ですIDictionaryを<文字列、オブジェクト>として結果リターンを持つことができますか?ビットそう(コンパイルが、意思を示していない)

IDictionary<string, object> data = new Dictionary<string, object>(StringComparer.OrdinalIgnoreCase); 
data = db.ExecuteQuery<IDictionary<string, object>(queryString, params).ToDictionary(
    k=>nameOfColumn, 
    k=>k 
) 

よう

もちろん、私は完全にデータ= db.ExecuteQueryでマップ外だ...
私が感じていますexecuteQueryは、これが既にオブジェクトへのマッピングを試みているので、私が使用すべきものではありません。この特定のユースケースについては、私はそれを望んでいません。

+0

(コメントに返信) –

答えて

2

マテリアライズするオブジェクトタイプを含める必要があります。方法について:

var data = db.ExecuteQuery<SomeType>(queryString, params) 
      .ToDictionary(st => st.SomeKey); 
+0

はそれはLINQのはSomeTypeに値を解析しようとすることはないだろうか? –

+0

はい...しかし、代替手段は何ですか?「オブジェクト」ですか?型付きデータがない場合は、LINQが最適なオプションではない可能性があります。単にADO.NETとSqlCommand.ExecuteReaderを使用してください –

+0

確かに、私はその間にすでにそれをしました。 Linqの構文解析で型付きデータを何らかの形でプラグインできるようにするかどうかを調べるべきかもしれません。 –

関連する問題