2014-12-18 1 views
0

Я просто хотел, чтобы отфильтровать результаты, которые я запрашиваю из базы данных аналогичны:Queryable.Where метод работает только на List <>, но не DbSet <>

var resultsWithNullSomeColumn = db.Table.Where(x => x.someColumn == null) 

Это не работает!

Однако, если я получаю всю таблицу из БД и преобразовать его в List<> то я могу отфильтровать строки с нулевым someColumn

var wholeTable = db.Table.ToList(); 
var resultsWithNullSomeColumn = wholeTable.Where(x => x.someColumn == null); 

Мой вопрос: Почему Where работает только на List<> но не DbSet<>

+0

Что такое 'someColumn'? – CodeCaster

+0

'someColumn'is' Nullable ' – Sincere

ответ

0
db.Table.Where(x => x.someColumn == null).ToList(); 

Должно работать. Для построения результатов запроса необходимо позвонить ToList(). Использование вашего примера:

var resultsWithNullSomeColumn = db.Table.Where(x => x.someColumn == null); 

var listResults = resultsWithNullSomeColumn.ToList(); 

Должно также работать.

+0

Я уже пробовал первый, он не работает. Но второй делает. Я подозреваю, что проблема связана с 'null', потому что я попробовал' int', и оба работали. Спасибо за ваш ответ – Sincere

Смежные вопросы