2010-12-04 5 views
12

私は、ESQLの使用を推奨する状況があるかどうか疑問に思っていましたか?どのような状況でEntity SQLを使用する必要がありますか?

通常、エンティティタイプを完全に修飾する必要があるすべての特別なケースで特にESQLが欲求不満です。&おそらくESQLを使用して行われたことは、SQLまたはLINQによって実行できます。

しかし、私はESQLは、ソリューションのためのより良いフィットであるか、SQLまたはLINQを使用してオーバー競争力だろうな状況(高速なコードに/簡単にどちらか、またはより良い性能を、など)の思っていた

ので、ここで妥協は何ですか? EF4を問い合せる際に、3つのアプローチのそれぞれを使用する方が良いでしょうか?

答えて

22

私はESQLは、例えば、エッジケースのために良いことをすることを見つける:それはLINQで何かを表現するために本当に難しい

  1. を。 非常にダイナミックな検索を構築するための
  2. 使用しているプロバイダによって公開されているデータベース固有の機能を使用する場合。

さらに、Entity SQLを知っていれば、QueryViewとモデル定義クエリを表すことができます。

+3

+1ありがとうございましたジュリー、ここでもっとあなたに会いたいと思っています:) –

+2

あなたはプログラミングエンティティフレームワークの著者です。私はSOがファンの機能を持っていたらいいと思う。 – Luke101

+0

@ルーク..yesと赤面とLOL –

1

julieと同様に言及しました。 Esqlは、LINQ to Entities Queriesを使用して使用できるモデル定義関数を記述する必要があります。 ほとんどの場合、LINQ to Entitiesを使用しています。 LINQ TO Entitiesを使用することができないもう1つのケースでは、ストア関数を使用して問合せを作成するときに、UDFが使用されます。この場合、esqlはEF1の唯一の方法ですが、EF4ではその機能を使用してLINQで使用される機能を公開することができます。 パフォーマンスについては、esqlのパフォーマンスが向上しています。 Linqをesqlを使用したパフォーマンスの向上よりも生産性を好むかもしれません。

3

私はこれらのかなり似たような質問をしました(これは私が以前に私の手で入力したときには表示されませんでした)、スタックオーバーフローではもっと深い議論があると思います(T-SQLはあまり言及されませんが、かなり明白が):あなたはEF4のあなたの現在の理解に基づいたデータのいくつかを検証するかもしれないように、2つの質問は少し「古い」であることを

関連する問題