LINQ Interview Question #115
How can you create reusable LINQ predicates for IQueryable?
LINQ Performance, EF Core LINQ, Expressions & Advanced Queries Senior Advanced
Quick Interview Answer
Reusable database predicates can be stored as Expression<Func<T,bool>> values. Because the expression remains inspectable, it can be supplied to IQueryable operators and translated when supported.
Detailed Explanation
Reusable database predicates can be stored as Expression<Func<T,bool>> values. Because the expression remains inspectable, it can be supplied to IQueryable operators and translated when supported.
This is useful for shared business filters such as active records, visibility rules, or reusable search conditions.
Code Example
Expression<Func<Product, bool>> active =
p => p.IsActive && !p.IsDeleted;
var result = await db.Products
.Where(active)
.ToListAsync();