C#, LINQ, consulta dinámica: código para filtrar una consulta dinámica fuera del repositorio
-
21-09-2019 - |
Pregunta
Si hace algo como esto en su repositorio:
IQueryable<CarClass> GetCars(string condition, params object[] values) {
return db.Cars.Where(condition, values);
}
Y establece la condición y los valores fuera del repositorio:
string condition = "CarMake == @Make";
object[] values = new string[] { Make = "Ford" };
var result = myRepo.GetCars( condition, values);
¿Cómo podría ordenar el resultado fuera del repositorio con consulta dinámica?
return View( "myView", result.OrderBy("Price"));
De alguna manera estoy perdiendo la naturaleza dinámica cuando los datos salen del repositorio. Y sí, no he resuelto cómo devolver el tipo de carclass donde normalmente haría un nuevo carclass seleccionado {fieldName = m.fieldname, ...}
Solución
La consulta dinámica requiere:
- la fuente será
IQueryable<T>
(Entonces si esIEnumerable<T>
o similar, solo llame.AsQueryable()
en eso) - Una DLL adicional a hacer referencia en el código que desea realizar una consulta dinámica
- La Apropiada
using
Las directivas estarán en su lugar en la parte superior del archivo fuente local
Revise esos tres y debería poder agregar .Where(condition)
, .OrderBy(name)
, etc
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow