質問: MVC 5プロジェクトでLINQでEF 6.0を使用しています。デバッグ/パフォーマンス測定の目的で、Entity Framework DbContextによって実行されるすべてのSQLクエリを記録します。 Java / Hibernateでは、 `hibernate.show_sql=true`プロパティを設定することで同等の動作を実現でき`hibernate.show_sql=true` 。 Entity Frameworkでも同様の動作が可能ですか?
回答: MSDNのロギングとインターセプトのデータベース操作に関する記事は、あなたが探しているものです。 `DbContext.Database.Log`プロパティは、文字列を`DbContext.Database.Log`すべてのメソッドのデリゲートに設定できます。最も一般的には、そのTextWriterの「書き込み」メソッドに設定することで、どの`TextWriter`でも使用されます。現在のコンテキストによって生成されたすべてのSQLは、そのライターに記録されます。たとえば、次のコードはSQLをコンソールに記録します。 ``` using (var context = new BlogContext()) { context.Database.Log = Console.Write; // Your code here... } ```