在LINQ-to-Entities查询中使用.Include()时返回最大值/限制?

时间:2011-03-06 21:35:11

标签: c# asp.net linq entity-framework linq-to-entities

有没有办法限制在ObjectQuery<>?上调用.Include()方法时返回的记录数量?基本上,如果我的一个实体处于一对多关系中,例如Band实体到Fan实体列表(一个乐队可以拥有任意数量的粉丝),我该如何限制返回的粉丝数量?

在示例中:

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

如果我使用Include,它将返回所有粉丝。如何查询Fans导航属性以仅返回子集或最大值?感谢。

2 个答案:

答案 0 :(得分:1)

我通常查询显式而不是使用include,因此返回匿名类型。

from band in ctx.Bands
where band.BandId == someBandId
select new
{
    band = band,
    maxFan = band.Fans.OrderByDescending(f => f.SortingValue).FirstOrDefault(),
};

答案 1 :(得分:1)

听起来你想要Take方法。