Entity Frameworkによって生成されたSQLを表示する方法を教えてください。

ado.net entity-framework

質問

エンティティフレームワークによって生成されたSQLを表示する方法

(私の特定のケースでは、私はmysqlプロバイダーを使用しています - それが問題であれば)

受け入れられた回答

次のことができます。

IQueryable query = from x in appEntities
             where x.id = 32
             select x;

var sql = ((System.Data.Objects.ObjectQuery)query).ToTraceString();

またはEF6の場合:

var sql = ((System.Data.Entity.Core.Objects.ObjectQuery)query)
            .ToTraceString();

それはあなたに生成されたSQLを与えるでしょう。


人気のある回答

Entity Framework 6以降を使用している場合、(以前と同様に)Visual Studioで出力SQLを表示したい場合は、新しいロギング/インターセプト機能を使用する必要があります。

次の行を追加すると、Visual Studioの出力パネルに、生成されたSQLが(追加の実行関連の詳細とともに)吐出されます。

using (MyDatabaseEntities context = new MyDatabaseEntities())
{
    context.Database.Log = s => System.Diagnostics.Debug.WriteLine(s);
    // query the database using EF here.
}

この気の利いたブログシリーズでのEF6へのログインについてのより多くの情報: http ://blog.oneunicorn.com/2013/05/08/ef6-sql-logging-part-1-simple-logging/

注意:プロジェクトをデバッグモードで実行していることを確認してください。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ