Essayez de trouver le meilleur moyen d'y parvenir. J'ai donc une table de magasins avec des propriétés:Retour d'entités + données supplémentaires avec les services de données ADO.NET
StoreID, Nom, Latitude, Longitude, etc.
Je l'aide des services de données ADO.NET (Astoria) pour créer un service Web qui montrera les magasins à proximité donné un rayon et une coordonnée. J'ai fait une opération de service pour prendre les paramètres et retourner les résultats comme un IQueryable. Jusqu'ici tout va bien.
Donc maintenant j'ai quelque chose comme:
return context.Stores.Where(...distance calculation...);
Cela fonctionne très bien, mais je veux aussi revenir la distance de chaque magasin du rayon donné. J'ai le calcul couvert, mais comment dois-je inclure la distance avec les données du magasin? Dois-je créer une classe comme StoreSearchResult avec des propriétés pour le magasin et la distance? Si j'utilisais simplement SQL, je pourrais écrire une seule requête de base de données qui retournerait toutes les données pour le magasin, avec une colonne pour la distance. Quelque chose comme:
Select StoreID, Name, Latitude, Longitude, (calculation...) as Distance
from Store
where ...distance param...
Je suis à la recherche de la meilleure façon de renvoyer les données du magasin d'origine + le calcul de la distance tout en retournant IQueryable. Je préférerais ne pas prendre un IEnumerable et utiliser AsQueryable ... J'ai juste l'impression qu'il devrait être possible de le garder proche de la requête de la base de données, et il me manque probablement quelque chose.
Merci pour la réponse! Votre première réponse est similaire à quelque chose que j'avais déjà préparé, mais cela ne m'amène qu'à IEnumerable, qui ne supporte pas les mêmes choses que IQueryable. Je pourrais utiliser AsQueryable, mais cela ne semble pas aussi solide que de trouver un moyen de renvoyer une seule instruction db. –