は私のLINQクエリはLINQと生成されたSQL
var qry = from c in nwEntitiesContext.CategorySet.AsEnumerable()
let products = this.GetProducts().WithCategoryID(c.CategoryID)
select new Model.Category
{
ID = c.CategoryID,
Name = c.CategoryName,
Products = new Model.LazyList<Core.Model.Product>(products)
};
return qry.AsQueryable();
のようなものであると仮定し、私はちょうど私たちが実行したとき、それはVS2010のIDEから生成されたものを照会確認する方法....それは、実行時に生成されます問い合わせるかを知りたいですデバッグモードのコードは....私はステップごとにガイドします。あなたは、このようにメモリにCategory
テーブルからすべてのデータをフェッチAsEnumerable
を呼び出すので、それだけでCategory
テーブルからすべてのフィールドを選択します -
linqパッドを使用しないと、生成されたSQLは表示されません。いつかのデータ検索が遅いので、ユーザーは間違いなくSQLが生成しているものを見たいと思っています。ご意見をお聞かせください。 – Mou
@ user728750 - あなたは 'GetProducts()'のコードを表示していませんが、特定のcategoryIdを持つすべての製品を取得するEFクエリを作成している場合、** EVERY ** 'Category' DBに。 'AsEnumerable'を呼び出した後、あなたはオブジェクト空間にいます(EFはクエリを作成し、すべてのカテゴリを取得しました)。その後、あなたが何をするかによって、実際に直面しているパフォーマンスの問題を説明するすべてのカテゴリのDBクエリを作成することができます。 SQLレベルで何が起きているのかは、たとえば次のようにして確認できます。 SQLプロファイラ(私の答えを見てください)。 – Yakimych