选择Linq to Sql的集合中的最新新闻文章

问题描述:

我有一堆新闻文章,我想选择使用Linq to Sql的最新文章。我有像这样选择Linq to Sql的集合中的最新新闻文章

[ChildActionOnly] 
public ActionResult LatestNews() 
{ 
    var article = mhndb.NewsArticles.Single(); 

    return PartialView("LatestNews", article); 
} 

我想知道使用LINQ的NewsArticles集合中选择最近的项目中的语法的MVC操作方法。提前致谢。

最简单的方法是使用OrderByDescending然后FirstOrDefault()

var article = mhndb.NewsArticles.OrderByDescending(a => a.PostedTime) 
           .FirstOrDefault(); 

(如果你使用First,如果没有条目,将引发异常,并FirstOrDefault,它会返回null。)

如果你想使用一个查询表达式,它会是这个样子:

var article = (from a in mhndb.NewsArticles 
       orderby a.PostedTime descending 
       select a).FirstOrDefault(); 
+0

感谢乔恩,这工作! – Gallen 2010-08-19 18:42:21

使用一些像

mhndb.NewsArticles.OrderBy(a => a.publishDate).Last() 
+0

如果有多个条目,使用'Single'将会炸毁。而使用OrderBy而不是OrderByDescending会给出*最早的*条目,而不是最新的条目。 – 2010-08-18 21:16:33