Django にはデバッグ ツールバーがあり、実行中のすべてのクエリを確認できます。MVC4 でそれらを表示するにはどうすればよいですか?
3 に答える
検討できるツールはたくさんあります。http://www.thinqlinq.com/Post.aspx/Title/LINQ-to-Database-Performance-hintsで、Intellitrace、SQL プロファイラー、MVC などの比較的安価なプロファイリング ツールなど、これらの多くについて説明します。 MiniProfiler、ORM Profiler、Huagati の LINQ to SQL Profiler、EF Prof、または最低限、LinqPad を使用してクエリ用に生成されたコードをチェックします。これらのオプションの一部では、既存のコード ベースを変更してプロファイラーをプラグインする必要があります。その他は、データベースへのトラフィックを傍受するだけです。特に学習中に何かを使用する限り、どちらを使用してもかまいません。
実行された SQL コマンドだけを見たい場合は、IntelliTrace を使用できます (VS Ultimate エディションでのみ利用可能)。リクエストごとのプロファイリングが必要な場合は、MVC Mini Profilerを試すことができます。EF には、実行された SQL コマンドを追跡するための組み込みツールがありません。
わかりました、northwind データベースの例を見てみましょう
using(NorthwindEntities context = new NorthwindEntities())
{
var query = from p in context.Products
where p.Product_ID == 3
select p;
//Query can be traced like this
var SqlQuery = (System.Data.Objects.ObjectQuery<Product>)query;
Console.WriteLine(SqlQuery.ToTraceString());
}
ページの読み込み時にこれを使用してvar SqlQuery = (System.Data.Objects.ObjectQuery<Product>)query;
、必要な場所に値を出力できます。