2010-11-24 16 views
1

linqクエリ(または以下のような式)を人間が読める文字列に変換するにはどうすればよいですか?デバッグに便利です。linqクエリを人間が読める文字列に変換する方法

Expression<Func<User, bool>> query 

編集

理解することは困難だったので:私は式から文字列を取得したいです。したがって、式の宣言の例。

Expression<Func<User, bool>> query2 = 
    u => u.FirstName.StartsWith("J") && u.LastName == "Gauffin"; 

は次のようなものを印刷する必要があります "姓のSTARTSWITH 'J' と姓は 'Gauffin' を等しいです"。

+1

を呼び出すことができますLINQ to SQLの中にまた

は、などがあり、クエリがないので、人間が読める文字列に "翻訳"したいのですか? –

+0

想像力を持ってください。それを持っていないあなたのために:更新された質問。 – jgauffin

答えて

5

ヒント: あなたは、SQLまたはエンティティフレームワークにLINQを使用してクエリを実行している場合は、ToStringメソッドを使用することができ、SQLでクエリを取得するためのIQueryableオブジェクト上の()メソッド:

query2.ToString()のようなものを与えます:

SELECT * FROM Table1 WHERE FirstName LIKE 'J%' AND LastName="Gauffin" 
+0

ああ、それを知らなかった=) – jgauffin

+0

データコンテキストクラスのLogプロパティを使用するSQLクエリをキャプチャする別の方法もあります。datacontext.Log = Console.Out –

1

VSサンプルフォルダのLINQ Expression Visualizerをチェックしてください。あなたはObjectQueryのにLINQクエリを投げEntity FrameworkのではDataContext.Log

を使用してそれを見ると、これが唯一の宣言ですToTraceString

関連する問題