14

ESQL を使用する方が賢明な状況があるかどうか疑問に思っていましたか?

一般的に、私は ESQL をイライラさせます (特に、エンティティ タイプを完全に修飾する必要があるすべての特殊なケースで)。おそらく、ESQL を使用して行うことはすべて、SQL または LINQ を介して行うことができます。

しかし、ESQL がソリューションに適しているか、SQL や LINQ を使用するよりも競争力がある (コーディングが簡単/高速である、またはパフォーマンスが優れているなど) 状況について疑問に思っていました。

それで、ここでの妥協点は何ですか?EF4 を介したクエリで 3 つのアプローチのそれぞれを使用する方が良いのはいつですか?

4

3 に答える 3

22

ESQL は、次のようなエッジ ケースに適していることがわかりました。

  1. LINQ で何かを表現するのが本当に難しい場合。
  2. 非常に動的な検索を構築するため。
  3. 使用しているプロバイダーによって公開されているデータベース固有の関数を使用する場合。

また、Entity SQL を知っていれば、QueryView やモデル定義クエリを表現できるようになります。

于 2010-12-04T20:33:14.930 に答える
3

スタックオーバーフローでこれらの非常によく似た質問(以前に入力したときに表示されませんでした)に出くわしましたが、より深い議論があると思います(T-SQLについてはあまり言及されていませんが、かなり明白です) :

2つの質問は少し「古い」ので、EF4の現在の理解に基づいてデータの一部を検証する可能性があることに注意してください。

于 2010-12-05T23:16:51.923 に答える
1

ジュリーが言った通りです。Esql は、LINQ to Entities クエリを介して使用できるモデル定義関数を記述するために必要です。ほとんどの場合、LINQ to Entities を使用します。組み込みまたは UDF のストア関数を使用してクエリを作成するときに、LINQ TO Entities を使用できないもう 1 つのケースがあります。この場合、esql は EF1 での唯一の方法ですが、EF4 ではその機能を使用して、LINQ で使用される関数を公開できます。パフォーマンスについては、esql の方が優れています。ただし、esql を使用してパフォーマンスを向上させるよりも、Linq を使用して生産性を向上させたい場合があります。

于 2010-12-04T20:52:57.257 に答える