no reino da manipulação de dados, LINQ (consulta integrada do idioma) tornou -se uma ferramenta poderosa. No entanto, e se os parâmetros de consulta não forem estáticos e precisarem ser obtidos dinamicamente de uma fonte externa? Podemos criar novas consultas LINQ em tempo real sem a necessidade de recompilação do código -fonte?
o desafio pode ser enfrentado, empregando árvores de expressão em conjunto com o LINQ. Ao construir uma árvore de expressão, uma consulta pode ser construída dinamicamente, mesmo em tempo de execução. Aqui está um exemplo:
var param = Expression.Parameter(typeof(SomeObject), "p"); var exp = Expression.Lambda>( Expression.Equal( Expression.Property(param, "Name"), Expression.Constant("Bob") ), param ); var query = someObj.Where(exp);
Neste exemplo, a árvore de expressão é criada com o parâmetro 'p' do tipo 'algumObject'. A expressão lambda 'Exp' define a cláusula WHERE: 'P.Name' é comparada ao valor constante 'bob'. Finalmente, a consulta é formada aplicando o método 'where' com a árvore de expressão 'exp' na coleção 'algumbj'. e adaptação à alteração dos requisitos. Execution.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3