27

Linq to SQL によって生成された SQL を SQL Server Profiler (2005) で表示しようとしています。

linq to sql 以外からサーバーに送信された sql を確認できます。

トレースのイベント選択を変更する必要があるに違いありませんが、他に何を選択すればよいかわかりません。

現在、これのみを選択しています: SQL:StmtCompleted - TextData & SPID

データ コンテキスト ログも SQL Debug Visualizer も使用したくありません。プロファイラーを使用する必要があります。

LINQ to SQL クエリが表示されないのはなぜですか?

ありがとう。

編集

SQL:BatchCompleted を追加しましたが、役に立ちませんでした。

編集2

イベント選択のストアド プロシージャ カテゴリの下にあるイベント RPC:Completed を追加しました。これはうまくいきました!

4

4 に答える 4

37

RPC 呼び出しが必要です。クエリは exec_sql として実行されます。

于 2009-04-08T12:52:41.190 に答える
2

BatchCompleted イベントも表示するのに十分なオプションを SQL プロファイラーに含めていますか?

マルク

于 2009-04-08T12:42:49.013 に答える
1

データ コンテキスト クラスには、クライアント側でログを有効にするオプションもあります。ログを有効にすると、クエリを表示できます。

このリンクを参照してください。

http://www.davidhayden.com/blog/dave/archive/2007/08/17/DataContextLogLoggingLINQToSQLOutputConsoleDebuggerOuputWindow.aspx

于 2009-04-08T14:36:13.970 に答える
0

同じ問題があり、上記の解決策はどれもうまくいきませんでした。

私にとってうまくいったのは、 ToList() 列挙子をクエリに追加することでした。

前:

var data = null == id ?
                   (from ...
                    select new
                    {
                        ...
                    })
                :
                   (from ..
                    select new
                    {
                        ...
                    });

後:

var data = null == id ?
                   (from ...
                    select new
                    {
                        ...
                    }).ToList()
                :
                   (from ..
                    select new
                    {
                        ...
                    }).ToList();

foreach (var obj in data)
{
   xxx = obj.somename; --> now you can see the sql query in Profiler
于 2017-04-26T19:58:09.770 に答える