2010-06-27 15 views
0

J'écris un fournisseur LINQ personnalisé à un service RESTful. Certains des appels dans le service renvoient des en-têtes de résumé, y compris le nombre total d'enregistrements, la taille de page et la page du retour. J'ai besoin de nettoyer un moyen de retourner ces données. Compte tenu de cette requête:Fournisseur LINQ au service RESTful

var foo = from x in ctx.MyQueryableThingie 
      select x; 

La variable "foo" ci-dessus devient un IQueryable<MyQueryableThingie>. Quel est le meilleur moyen de renvoyer ces données récapitulatives sans les associer à chaque membre de la collection? J'ai envisagé de les rendre propriétés du contexte, de telles propriétés seraient mises à jour avec chaque requête, mais je ne suis pas sûr que ce soit le meilleur modèle.

Répondre

-1

Je dirais le stocker dans un queryProvider. De cette façon, vous vous assurerez que chaque instance possède les propriétés de la requête exécutée par cette instance (ce qui serait difficile avec les champs statiques). Bien sûr, d'un point syntactique de vue, cette information est une partie de la QueryResult, vous pouvez donc aller chercher un peu d'effort supplémentaire et mettre en œuvre un

IMyCustomQueryResult<T> : IEnumarable<T> 

mais ce serait probablement faire trop de bruit, QueryProvider est probablement la meilleure façon de le stocker, car c'est le fournisseur de requête qui fait l'analyse, et l'exécution, donc c'est peut-être l'endroit pour stocker l'info (et il est possible de l'obtenir de toute façon) Mais c'est juste mes pensées. Bonne chance avec la mise en œuvre de toute façon. À la vôtre luke