Re[2]: C# Extension для Queryable.Where
От: Alexandr Sulimov Украина www.ase.com.ua
Дата: 22.06.14 09:17
Оценка:
Здравствуйте, scale_tone, Вы писали:

_>1. Метод Where() резолвится не тот, что нужно.

_>2. Собирать итоговую лямбду из массива входящих лямбд и вновь созданного Expression.Parameter(typeof(T), "x") не прокатит, т.к. во входящих лямбдах свои собственные параметры, пусть даже и с тем же именем "x". В DebugView выглядит одинаково, но не работает.
_>3. Возвращать надо не source, а результат mWhere.Invoke().
_>4. Не Expression.Or, а Expression.OrElse.

Огромная боагодарность, несколько дней игрался.

_>Так даже вроде работает, но код все равно ужасен. Неужели сами не видите?

_>В целом, на мой взгляд, Вы явно выбрали не тот инструмент для решения задачи.
_>Expression-ы — это, конечно, звучит круто, но реальная необходимость их применения возникает исключительно редко.
_>И только в этих очень редких случаях стоит мириться с появлением в коде вышеприведенного месива.

А какой инструмент в этом случаее оптимальный?
Для динамических фильтров (сортирвок) я как раз и вышел на Expression.
Смелости хватает только под ником писать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.