Jar*_*red 63 c# linq entity-framework asp.net-mvc-3
我正在使用Linq/EF4.1从数据库中提取一些结果,并希望将结果限制为(X)最近的结果.其中X是用户设置的数字.
有没有办法做到这一点?
我现在正在将它们作为一个传递给它,List如果这有助于限制结果集.虽然我可以通过循环来限制它,直到我点击X我只是假设没有传递额外的数据.
以防它是相关的...... C#MVC3项目从SQL Server数据库运行.
Shy*_*yju 117
使用该Take功能
int numberOfrecords=10; // read from user
listOfItems.OrderByDescending(x => x.CreatedDate).Take(numberOfrecords)
假设listOfItems是您的实体对象的列表,并且CreatedDate是一个具有日期创建值的字段(此处用于通过降序来获取最近的项目).
Take()函数从序列的开头返回指定数量的连续元素.
http://msdn.microsoft.com/en-us/library/bb503062.aspx
Mr.*_* TA 26
results = results.OrderByDescending(x=>x.Date).Take(10);
OrderByDescending将按您的日期/时间属性(或您想要用于获取最新的w/e逻辑)对项目进行排序,并且Take将限制为前x个项目(由于订购,首先是最新的项目).
编辑:要返回不在第一行开始的某些行,请使用Skip():
results = results.OrderByDescending(x=>x.Date).Skip(50).Take(10);
Red*_*ter 14
Take()在转换为List之前使用.这样,EF可以优化它创建的查询,只返回您需要的数据.
| 归档时间: | 
 | 
| 查看次数: | 80403 次 | 
| 最近记录: |