В сфере манипулирования данными, LINQ (Языковой интегрированный запрос) стал мощным инструментом. Однако что, если параметры запроса не являются статичными и должны быть динамически получены из внешнего источника? Можем ли мы создать новые запросы LINQ на лету без необходимости перекомпиляции исходного кода? Построив дерево выражения, запрос может быть построен динамически, даже во время выполнения. Вот пример:
В этом примере дерево выражения создается с параметром «p 'типа' ofomeObject '. Выражение Lambda «Exp» определяет пункт «Где»: «p.name» сравнивается с постоянным значением «Боба». Наконец, запрос формируется путем применения метода «где» с деревом выражения «exp» на коллекции «someobj».
var param = Expression.Parameter(typeof(SomeObject), "p"); var exp = Expression.Lambda>( Expression.Equal( Expression.Property(param, "Name"), Expression.Constant("Bob") ), param ); var query = someObj.Where(exp);
Использование деревьев выражений для динамического запроса. адаптация к изменяющимся требованиям.
]процесс построения и выполнения запросов разделен, что позволяет повторно использовать логику запросов в разных частях приложения.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3