Как стать автором
Обновить
12
0

Пользователь

Отправить сообщение

Унифицируем поведение LINQ to IEnumerable и LINQ to IQueriable в части работы с null значениями. Часть вторая. Своя реализация IQueryProvider

Время на прочтение4 мин
Количество просмотров9.2K
В комментариях к первой части мне справедливо сделали замечание, что я обещал унификацию IEnumerable и IQueryable, а сам спрятал их за самописным интерфейсом типа репозитория. В этой статье я постараюсь исправится и дать пример что же делать, если мы хотим работать с LINQ напрямую. Для этого я предложу собственную реализацию интерфейса IQueryProvider.

GitHub
Nuget

Много кода
Всего голосов 12: ↑11 и ↓1+10
Комментарии3

Унифицируем поведение LINQ to IEnumerable и LINQ to IQueriable в части работы с null значениями. Пример ExpressionVisitor

Время на прочтение4 мин
Количество просмотров10K
Ни для кого не секрет, что хотя LINQ позиционируется как универсальный язык запросов к коллекциям разного происхождения (как коллекциям в памяти, так и различным удаленным источникам данных, например, базам данных), однако на деле результаты одинаковых запросов получаются разными в зависимости от того, к какой коллекции был запрос. В частности, при наличии null в свойстве Property1 используемом в выражении в методе .Select(c=>c.Property1.Property2) можно получить как NullReferenceException, так и null в качестве результата.
Пример решения проблемы
Всего голосов 11: ↑11 и ↓0+11
Комментарии8

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность