Показать сообщение отдельно
Старый 16.05.2018, 09:07   #4  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Filter это подобие LINQ - он находит QueryProvider от исходного списка и передает выражение ему. Т.е. работа зависит от того, что за список.

Если исходный список взят из таблички, то он делает Query и передает работу ему.

В отличие от LINQ есть статическая валидация того, что условие может быть транслировано в Query

Если исходный список взят из модели данных, он пытается сначала сделать query, но если не получается, молча деградирует до where. Последнее сделать чтобы похзволить менять model mapping и format mapping продолжил работать.

Сейчас я думаю, что логичей было не делать новую функцию для кажого случая использования (у нас уже две таких) а сделать одну общую.

Query(Where(список, условие))
За это сообщение автора поблагодарили: EVGL (5), dech (3).