C#, LINQ, Dinâmica Consulta: Código para filtrar uma consulta dinâmica fora do repositório
-
21-09-2019 - |
Pergunta
Se você fizer algo assim em seu repositório:
IQueryable<CarClass> GetCars(string condition, params object[] values) {
return db.Cars.Where(condition, values);
}
E você define a condição e os valores fora do repositório:
string condition = "CarMake == @Make";
object[] values = new string[] { Make = "Ford" };
var result = myRepo.GetCars( condition, values);
Como você seria capaz de classificar o resultado fora do repositório com consulta dinâmica?
return View( "myView", result.OrderBy("Price"));
De alguma forma, estou perdendo a natureza dinâmica quando os dados saem do repositório. E sim, eu não descobri como devolver o tipo de carclass, onde você normalmente faria uma nova carclass selecionada {FieldName = M.FieldName, ...}
Solução
A consulta dinâmica requer:
- a fonte é
IQueryable<T>
(então se forIEnumerable<T>
ou similar, basta ligar.AsQueryable()
nele) - Uma DLL extra a ser referenciada no código que deseja executar uma consulta dinâmica
- o apropriado
using
As diretrizes estão em vigor no topo do arquivo de origem local
Verifique esses três, e você poderá adicionar .Where(condition)
, .OrderBy(name)
, etc.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow