LINQ Interview Question #94

What is query composition in LINQ?

Deferred Execution, Immediate Execution & Query Behavior Mid-Level Intermediate

Quick Interview Answer

Query composition means building a query incrementally by applying additional operators before execution. This is especially useful with IQueryable because each step can contribute to one expression tree that a provider later translates.

Detailed Explanation

Query composition means building a query incrementally by applying additional operators before execution. This is especially useful with IQueryable because each step can contribute to one expression tree that a provider later translates.

It is commonly used to add optional search filters, sorting, and pagination based on user input.

Code Example

IQueryable<Product> query = db.Products;

if (onlyActive)
    query = query.Where(p => p.IsActive);

if (minimumPrice.HasValue)
    query = query.Where(
        p => p.Price >= minimumPrice.Value);

var result = await query.ToListAsync();