2010-12-04 30 views
12

Je me demandais s'il y a une situation plus conseillée d'utiliser ESQL?Dans quelles situations dois-je utiliser Entity SQL?

Généralement, je trouve frustrant ESQL (spécialement avec tous les cas spéciaux où vous devez qualifier complètement un type d'entité) & probablement tout ce qui est fait en utilisant ESQL peut être fait par SQL ou LINQ.

Mais je me demandais des situations où ESQL est un meilleur ajustement pour une solution ou aurait un avantage concurrentiel par rapport à l'utilisation de SQL ou LINQ (soit plus facile/plus rapide au code, ou une meilleure performance, etc.)

donc , quel est le compromis ici? Quand est-il préférable d'utiliser chacune des trois approches pour interroger EF4?

Répondre

22

Je trouve que ESQL être bon pour les cas de pointe, par exemple:

  1. où il est vraiment difficile d'exprimer quelque chose dans LINQ.
  2. Pour la construction très recherches dynamiques.
  3. Si vous souhaitez utiliser une fonction spécifique à la base de données exposée par le fournisseur que vous utilisez.

De même, si vous connaissez Entity SQL, vous serez en mesure d'exprimer QueryViews et les requêtes définies par le modèle.

+3

+1 Merci Julie, nous espérons vous voir plus ici :) –

+2

Cool vous êtes l'auteur de framework d'entité de programmation. Je souhaite que SO avait une fonction de ventilateur. – Luke101

+0

@ Luke..Yes et rougir et LOL –

1

Tout comme julie mentionné. Esql est nécessaire pour écrire des fonctions définies par le modèle qui, en retour, peuvent être utilisées via les requêtes LINQ to Entities. La plupart du temps, vous utiliserez LINQ to Entities. Dans un autre cas, vous ne pouvez pas utiliser LINQ TO Entities lorsque vous souhaitez créer des requêtes avec des fonctions de stockage, que ce soit buit ou UDF. Dans ce cas, esql est votre seul moyen dans EF1 mais dans EF4 vous pouvez utiliser ses fonctionnalités pour exposer les fonctions à utiliser dans LINQ. A propos des performances, esql fonctionne mieux. mais vous pourriez préférer la productivité en utilisant Linq au gain de performance en utilisant esql.

3

Je suis tombé sur ces questions assez similaires (qui ne sont pas apparues lorsque j'ai tapé le mien, plus tôt) sur stack over flow, je suppose qu'ils ont des discussions plus profondes (bien que T-SQL ne soit pas souvent mentionné assez évident):

Notez que les deux questions sont un peu « vieux » de sorte que vous pouvez valider certaines données en fonction de votre compréhension actuelle de EF4