skills/dotnet/efcore/query-pipeline

query-pipeline

Installation
SKILL.md

Query Pipeline

Translates LINQ expressions into database queries and materializes results.

Stages

  1. PreprocessingQueryTranslationPreprocessor: NavigationExpandingExpressionVisitor (Include, navigations, auto-includes), QueryOptimizingExpressionVisitor
  2. TranslationQueryableMethodTranslatingExpressionVisitor: LINQ methods → ShapedQueryExpression (= QueryExpression + ShaperExpression). Relational: RelationalSqlTranslatingExpressionVisitor, SelectExpression
  3. PostprocessingQueryTranslationPostprocessor: SqlNullabilityProcessor, SqlTreePruner, SqlAliasManager, RelationalParameterBasedSqlProcessor, SelectExpressionProjectionApplyingExpressionVisitor, SqlExpressionSimplifyingExpressionVisitor, RelationalValueConverterCompensatingExpressionVisitor
  4. CompilationShapedQueryCompilingExpressionVisitor → executable delegate. Relational: ShaperProcessingExpressionVisitor builds shaper and materialization code
  5. SQL GenerationQuerySqlGenerator

Validation

  • ToQueryString() shows generated SQL without executing
  • ExpressionPrinter dumps expression trees at any pipeline stage
  • SQL baselines verified via AssertSql() in provider functional tests and the generated SQL corresponds to the LINQ query in the base method
Weekly Installs
1
Repository
dotnet/efcore
GitHub Stars
14.6K
First Seen
Mar 30, 2026