使用System.Linq;在.net

时间:2012-08-08 15:27:44

标签: .net linq

我想通过publish_at

返回最新的轮询顺序

有点像:

return  db.Polls.Where(p => p.status.Equals(PollStatus.Active))
                .OrderByDescending(d => d.publish_at)
                .Take(1);

不幸的是,这不起作用。我怎样才能获得最新的结果,而不是每个结果?

2 个答案:

答案 0 :(得分:2)

您当前代码的内容是 Enumerable ,它将迭代一个项目。你还没有自己的物品。

而不是.Take(1),请尝试使用.First().Single(),或.FirstOrDefault().SingleOrDefault()。值得花时间查阅和阅读每篇文档。

答案 1 :(得分:0)

这里是我的帖子,以获得最后n条记录,如果你想获得最后插入的记录

,它将对你有帮助

Get Last n Records using Linq to SQL

获得最后一次记录的简便方法

var qry = db.ObjectCollection
                     .Where(m => m.<field> == data)
                     .OrderByDescending(m => m.<field>)
                     .FirstOrDefault(); 

如果你想要最后n条记录

var qry = db.ObjectCollection
                     .Where(m => m.<field> == data)
                     .OrderByDescending(m => m.<field>)
                     .Take(n);