使用实体框架限制查询大小

时间:2010-07-27 14:09:53

标签: c# sql entity-framework

这是一个简单的问题(我认为),但我找不到解决方案。我知道对于其他类型的查询,您可以添加一个限制子句,使查询只返回那么多结果。这可能是实体查询吗?

var productQuery = from b in solutionContext.Version
                               where b.Product.ID != 1 && b.VersionNumber == b.Product.ActiveNumber
                               orderby b.Product.LastNumber
                               select b;

我只是想这样做,所以这个查询只返回25个版本对象。谢谢你的帮助。

3 个答案:

答案 0 :(得分:40)

确定..例如你可以这样做:

var productQuery = from b in solutionContext.Version
                           where b.Product.ID != 1 && b.VersionNumber == b.Product.ActiveNumber
                           orderby b.Product.LastNumber
                           select b;

var limitedProductQuery = productQuery.Take(25);

你也可能需要这个来分页结果:

var pagedProductQuery = productQuery.Skip(25 * page).Take(25)

答案 1 :(得分:5)

您要找的是Take

var productQuery = (from b in solutionContext.Version
                   where b.Product.ID != 1 
                       && b.VersionNumber == b.Product.ActiveNumber
                   orderby b.Product.LastNumber
                   select b).Take(25);

答案 2 :(得分:3)

var productQuery = (from b in solutionContext.Version
                           where b.Product.ID != 1 && b.VersionNumber == b.Product.ActiveNumber
                           orderby b.Product.LastNumber
                           select b).Take(25);