2016-09-25 58 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時,查詢會變得非常繁重。謝謝。 –

相關問題