[英]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.