簡體   English   中英

LINQ to SQL GroupBy,Take和OrderBy

[英]LINQ to SQL GroupBy, Take and OrderBy

我有一張有記錄的桌子

|   ID      |   FKID    |   Date        |   Username        |
--------------------------------------------------------------
|   A       |   a1      |   01/01/01    |       Joe         |
|   B       |   a1      |   02/01/01    |       Joe         |
|   C       |   b1      |   03/01/01    |       Joe         |
|   D       |   b1      |   04/01/01    |       Joe         |
|   E       |   c2      |   05/01/01    |       Joe         |
|   F       |   c2      |   06/01/01    |       Joe         |

我想選擇3個具有不同FKID記錄, FKID記錄的最新日期首先屬於Joe

|   F       |   c2      |   06/01/01    |       Joe         |
|   D       |   b1      |   04/01/01    |       Joe         |
|   B       |   a1      |   02/01/01    |       Joe         |

我可以達成一項記錄:

Table.Where(a => a.Username.Equals("Joe"))
     .GroupBy(a => a.FKID)
     .Select(g => g.FirstOrDefault())
     .ToList<Record>();

但無法使Take()OrderByDecending()正常工作。

您需要OrderByDescending :-

Table.Where(a => a.Username.Equals("Joe"))
     .GroupBy(a => a.FKID)
     .Select(g => g.OrderByDescending(x => x.Date).FirstOrDefault())
     .Take(3)
     .ToList<Record>();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM