C #, Linq, requête dynamique: Code pour filtrer une requête dynamique en dehors du référentiel

StackOverflow https://stackoverflow.com/questions/2497918

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, ...}

Était-ce utile?

La solution

requête dynamique nécessite:

  • la source être IQueryable<T> (donc s'il est IEnumerable<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
scroll top