C#, LINQ, consulta dinámica: código para filtrar una consulta dinámica fuera del repositorio

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

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

¿Fue útil?

Solución

La consulta dinámica requiere:

  • la fuente será IQueryable<T> (Entonces si es IEnumerable<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
scroll top