How does LINQ expression tree translation work internally?
Updated May 16, 2026
Short answer
Expression trees are parsed by LINQ providers to translate C# logic into query languages like SQL.
Deep explanation
When you write IQueryable queries, C# does not execute delegates. Instead, it builds an expression tree (a structured representation of code). Providers like EF Core traverse this tree node-by-node, converting operations such as Where, Select, and Join into SQL AST equivalents. This allows database-side execution instead of in-memory filtering. If a node cannot be translated, it either throws or switches to client evaluation depending on configuration.
Unlock with a Pro subscription to view this section.
View pricingReal-world example
No real-world example available yet.
Unlock with a Pro subscription to view this section.
Upgrade to ProCommon mistakes
No common mistakes listed yet.
Unlock with a Pro subscription to view this section.
Upgrade to ProFollow-up questions
No follow-up questions available yet.
Unlock with a Pro subscription to view this section.
Upgrade to Pro