Tôi đã tìm thấy câu trả lời rất hay về một câu hỏi về việc xây dựng Tree Expression cho truy vấn Where.Expression.Lambda và tạo truy vấn trong thời gian chạy, thuộc tính lồng nhau “Where” example
Expression.Lambda and query generation at runtime, simplest "Where" example
Ai đó có thể giúp tôi và chỉ cho tôi cách ví dụ này có thể được thực hiện trong kịch bản với tài sản lồng nhau. Ý tôi là thay vì:
var result = query.Where(item => item.Name == "Soap")
Với giải pháp rằng:
var item = Expression.Parameter(typeof(Item), "item");
var prop = Expression.Property(item, "Name");
var soap = Expression.Constant("Soap");
var equal = Expression.Equal(prop, soap);
var lambda = Expression.Lambda<Func<Item, bool>>(equal, item);
var result = queryableData.Where(lambda);
Làm thế nào tôi có thể xây dựng các cây sau?
var result = query.Where(item => item.Data.Name == "Soap").
'Dữ liệu' là gì? Chỉ định tài sản này –
Sergii cảm ơn sự giúp đỡ. Cuối cùng tôi giải quyết điều đó - bạn có thể kiểm tra nó bên dưới cập nhật. Dòng thứ hai được thêm vào và thứ ba được thay đổi. –