При использовании var
компилятор выводит тип выражения справа от присваивания. Когда вы пишете
var query = _db.Products;
query
имеет тип DbSet<Product>
, и ему не может быть назначено какое-либо IQueryable<Product>
, которое возвращает метод расширения Where
.
Когда вы использовали синтаксис запроса, query
снова IQueryable<Product>
, что заставило его работать. Это эквивалентно записи
var query = products.Select(t => t);
. Метод расширения Select
, например Where
, возвращает IQueryable<Product>
.