Как я могу написать Take (1) в синтаксисе запроса
Можно ли написать IQueryable<MyObject> = query.Take(1)
или что-то подобное в синтаксисе запроса LINQ. Я использую С# 5 и EF 5.
Ответы
Ответ 1
В синтаксисе выражения запроса для LINQ в С# нет эквивалента Take
. Единственными методами, которые имеют эквиваленты выражения запроса, являются
Where,
Select,
SelectMany,
Join,
GroupJoin,
OrderBy,
OrderByDescending,
ThenBy,
ThenByDescending,
GroupBy,
Cast
Это из §7.16.2 спецификации.
Ответ 2
Нет. Вы должны использовать синтаксис точки для этой операции. То же самое касается ToList
, Count
и т.д.
var query =
(from item in list
where predicate(item)
select func(item))
.Take(10);