2010-05-20 62 views
18

我正在使用Linq来实体,并想知道当我查询时是否可以获取有限数量的记录。我只需要最前面的N个记录,因为查询可以执行orderby和其他子句。这是可能的,否则我将不得不使用foreach循环获得前N个?获取使用LINQ to Entities的前N条记录

+0

HTTP://计算器。 com/questions/2874599/get-top-n-records-using-linq-to-entities – 2014-07-23 19:28:24

回答

28

您可以使用.Take方法调用来获得几个结果。 你可以阅读更多关于这个主题here

您需要明白,除非有人执行GetEnumerator(),否则查询将不会执行。

28

有多种方式

1)

var data = (from p in db.people 
      orderby p.IdentityKey descending 
      select p).Take(100); 

2)

var query = db.Models.Take(100); 

3),也可以跳过某些结果

var data = (from p in people 
      select p).Skip(100); 
+0

如果IdentityKey是Guid怎么办?任何解决方案 – 2017-10-23 01:36:01

+0

然后,要么根本不排序,要么排序其他列值 – 2018-01-08 18:40:16