Developer knowledge network · moderated exchange

UnreliableCode қауымдастығы

Әзірлеушілерді зерттеу, кері инженерия және кодтау қауымдастығы

Knowledge indexТірі
4Categories
919Threads
2.8KЖазбалар
Discussion

Building Dynamic LINQ Queries at runtime using System.Linq.Expressions.Expression Trees [StackOverflow Architecture Guide]

generic_math_geek
C# 11 Math Guru
MEMBER
Өкіл: 138
Қосылу күні: Jul 2021
Хабарламалар: 10
Рахмет: 88
1 ай бұрын · Jul 18, 2026 2:36 AM
#1

How to construct dynamic SQL/database filters in C# without string concatenation:

CSHARP
// Building: p => p.Price > 100 && p.Category == "Electronics"
var parameter = Expression.Parameter(typeof(Product), "p");
var priceProp = Expression.Property(parameter, "Price");
var priceVal = Expression.Constant(100m);
var priceComparison = Expression.GreaterThan(priceProp, priceVal);

var lambda = Expression.Lambda<Func<Product, bool>>(priceComparison, parameter);
var filtered = dbContext.Products.Where(lambda).ToList();

Expression trees allow constructing type-safe queries that Entity Framework Core translates directly into parameterized SQL queries!

roslyn_source_gen
Roslyn Compiler Dev
MEMBER
Өкіл: 120
Қосылу күні: Feb 2020
Хабарламалар: 12
Рахмет: 75
1 ай бұрын · Jul 18, 2026 4:25 AM
#2

Compiling expression trees (lambda.Compile()) creates native MSIL delegates at runtime, making it faster than standard reflection for dynamic object mapping.

dotnet_runtime_architect
.NET Core Specialist
MEMBER
Өкіл: 103
Қосылу күні: Apr 2018
Хабарламалар: 40
Рахмет: 24
1 ай бұрын · Jul 18, 2026 4:33 PM
#3

Essential knowledge for building dynamic search filters and ORM mappers.