Возврат max / limit при использовании .Include () в запросах LINQ-to-Entities? - PullRequest
2 голосов
/ 07 марта 2011

Есть ли способ ограничить количество записей, возвращаемых при вызове метода .Include () для ObjectQuery <>? По сути, если одна из моих сущностей имеет отношение один ко многим, например, сущность Band со списком сущностей Fan (где группа может иметь любое количество поклонников), как я могу ограничить число возвращаемых поклонников?

В примере:

var band = ctx.Bands.Include("Fans").SingleOrDefault(b => b.BandId == someBandId);

Если я использую Включить, он вернет всех поклонников. Как я могу запросить, что свойство навигации Fans возвращает только подмножество или максимум? Спасибо.

Ответы [ 2 ]

1 голос
/ 07 марта 2011

Звучит так, как вам нужен метод Take .

1 голос
/ 07 марта 2011

Обычно я использую явный запрос вместо использования include, возвращая анонимный тип.

from band in ctx.Bands
where band.BandId == someBandId
select new
{
    band = band,
    maxFan = band.Fans.OrderByDescending(f => f.SortingValue).FirstOrDefault(),
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...