1

私はに取り組んでおり、クエリを処理するためにVisual studio 2012 (C#)使用しています。Entity FrameworkSQL server

パフォーマンス上の理由から、バックグラウンドの SQL クエリ コードを編集してカスタマイズできるようにしたいと考えています。(エンティティフレームワークをより手動で作成し、背後で生成するものを制御するため).

これに関するすべての投稿を見ましたが、それはTraceToString私が言いたいことではありません。それを表示するだけでなく、バ​​ックグラウンド コードをオンラインで編集できるようにする必要があります。

編集

if ((activityBox.Text != "") && (biasBox.Text == ""))
{
aggGk = (from sk in db.DIM_COV_TEST_AGGREGATION_KEY 
where activityGk.Contains(sk.COV_ACTIVITY_GK) && (sk.DATE_ID >= beginTime) 
&& (sk.DATE_ID <= endTime) 
select sk.TEST_AGGREGATION_KEY_GK).Distinct().ToList(); 
}
4

4 に答える 4

4

パフォーマンスに問題がなければ、TSQL クエリに従う必要があると思います。.NET 開発者であれば、SQL クエリに慣れているでしょう。

以下のリンクは、さまざまなオプションのより大きな比較を提供します

  1. ストアド プロシージャを使用した Entity Framework VS LINQ to SQL VS ADO.NET?

ストアド プロシージャを EF で使用することもできます。これらの2つのリンクを確認してください

  1. http://msdn.microsoft.com/en-us/data/gg699321.aspx
  2. http://www.codeproject.com/Articles/522611/Entity-Framework-CRUD-Operations-Using-Stored-Proc

EF クエリの実行を制御することはできませんが、パフォーマンスを向上させるために SQL クエリを最適化することはできます。必要なのは、データを処理するためのモデル/エンティティ クラスを生成することだけです。

于 2013-08-19T06:40:55.530 に答える
1

フレームワークによって生成された SQL に (簡単に) 影響を与えることはできません。探しているのは、おそらくEntity SQL (おそらくObjectQuery<T>と組み合わせて) であり、Entity Framework の上に独自のクエリを大量に記述できます。より柔軟な方法。

于 2013-08-19T05:53:45.547 に答える
0

頭のてっぺんから、それは不可能だと思います。OR フレームワークを使用することの全体的なポイントは、SQL 言語を使用しないようにすることです。

より実りある議論のために、生成された SQL と関連するエンティティを編集して、どのような最適化を行いたいかを共有していただければ幸いです。

次のリンクを追加したいと思います http://msdn.microsoft.com/en-us/library/bb399560.aspx

これは、フレームワークから生成された SQL を正確に編集するわけではありませんが、パフォーマンスの微調整が必​​要な場合に使用できます。

于 2013-08-19T05:52:35.073 に答える