C #, Linq, requête dynamique: Code pour filtrer une requête dynamique en dehors du référentiel
-
21-09-2019 - |
Question
Si vous faites quelque chose comme ceci dans votre référentiel:
IQueryable<CarClass> GetCars(string condition, params object[] values) {
return db.Cars.Where(condition, values);
}
Et vous définissez la condition et les valeurs hors du référentiel:
string condition = "CarMake == @Make";
object[] values = new string[] { Make = "Ford" };
var result = myRepo.GetCars( condition, values);
Comment voulez-vous être en mesure de trier les résultats en dehors du référentiel avec requête dynamique?
return View( "myView", result.OrderBy("Price"));
D'une certaine façon, je suis en train de perdre la nature DynamicQuery lorsque les données sort du référentiel. Et oui, je ne l'ai pas travaillé sur la façon de retourner le type de CarClass où vous le feriez normalement une nouvelle Carclass Sélectionnez {fieldName = m.fieldName, ...}
La solution
requête dynamique nécessite:
- la source être
IQueryable<T>
(donc s'il estIEnumerable<T>
ou similaire, il suffit d'appeler.AsQueryable()
dessus) - une dll supplémentaire pour être référencé dans le code qui veut effectuer la requête dynamique
- les directives de
using
appropriées pour être en place en haut du fichier source locale
Vérifiez ces trois, et vous devriez être en mesure d'ajouter .Where(condition)
, .OrderBy(name)
, etc
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow