2016-09-25 60 views
0

我想使用一个LINQ查询基于多个条件从单个表中检索多个值。我的表如下所示:从同一个表中获取多个不同的值LINQ

ArticleId (int) 
ArticleName (string) 
CreatedDate (datetime) 
ArticleType (string) 
Views (int) 

我要检索:

  1. 前5最近创建的文章,
  2. 顶部,最大的意见5篇文章,
  3. 顶部ArticleType =“新闻5篇“

只使用一个LINQ查询。 我是学习这些东西的新手,所以我不知道这是否可能。如果这是一个愚蠢的问题,请原谅我。如果任何机构可以请LINQ中的方法语法回答。任何帮助appriciated。

回答

0

我将要回答的方法的语法,并在多个查询(因为单就无法读取,而且我不明白你为什么会想一个)

前5最近创建的文章 articles.OrderByDescending(a => a.CreatedDate).Take(5);

顶部最大视图 articles.OrderByDescending(a => a.Views).Take(5);

顶部ArticleType 5第5物品= “新闻报” 不知道怎么在这里定义顶部,但你可以填补空白:

articles. Where(a => a.ArticleType == "News").OrderBy(...).Take(5);

+0

谢谢你的答复。我想在单个查询中执行上述操作的原因是,只有单次访问数据库才能获取所有这些信息。我正在寻找在单个查询中做到这一点。无论如何感谢您的帮助。 –

+0

这有点难,因为你以不同的方式订购整个系列。这样做的唯一方法是将整个集合读入程序内存,并执行我上面写的内容,但这通常是一个糟糕的主意 – eavidan

+0

是的,你对@eavidan。我在开始时也想到了同样的方法。但是当记录数量在1000s时,查询会变得非常繁重。谢谢。 –

相关问题