ExpertiDict

C# · Avançado · Inglês · Técnico

expression tree

/ɪkˈsprɛʃən tri/substantivo

Representação em objetos da estrutura de um código, como uma lambda, em Expression<T>. Provedores como o EF Core a inspecionam para traduzi-la em outra linguagem, como SQL.

Onde usar

Aparece quando uma lambda é atribuída a Expression<Func<...>> em vez de Func, como nos filtros do EF Core. Como o código vira dados, dá para analisar, reescrever ou compilar a expressão em runtime.

Em código

using System.Linq.Expressions;

Expression<Func<int, bool>> e = n => n > 5;
Console.WriteLine(e.Body); // (n > 5)
var f = e.Compile();
Console.WriteLine(f(9));   // True

Exemplos

EF Core reads the expression tree to build the SQL.

O EF Core lê a expression tree para montar o SQL.

Declare the parameter as an Expression, not a Func.

Declare o parâmetro como Expression, e não como Func.

Cuidado

Não é possível colocar qualquer código C# numa expression tree: lambdas com corpo em bloco, por exemplo, não são aceitas.

Sinônimos

árvore de expressão

Veja também

Todos os termos de C#