2009-04-01 8 views
0

Je voudrais voir un exemple simple et clair de la façon de compiler une requête LinQ vers SQL. J'ai fait des recherches sur Google, et même s'il y a quelques exemples d'implémentation, les affiches de blogue mettent généralement l'accent sur la différence de temps entre les requêtes compilées et non-compilées.Requêtes LinQ compilées

Répondre

1

LINQ to SQL Compilé Les requêtes permettent essentiellement que la traduction de la requête LinqToSQL à SQL ordinaire, se produit une seule fois au moment de la compilation de sorte que la requête peut être réutilisée sans effectuer aucune Traduction.

Ils sont représentés comme Func statiques délégués, recevant une instance DataContext et les paramètres qui seront utilisés dans la requête:

public static Func<MyDataContext, string, IQueryable<Entity>> 
    TestQuery = 
     CompiledQuery.Compile((MyDataContext ctx, string param) => 
      from e in ctx.Entities where e.Field == param select e); 

Une pratique courante est que les requêtes compilées peuvent être stockées en tant que membres statiques sur une classe partielle Cela étend la classe générée DataContext.