获取 entityframework 中每个组的最后一条记录?

Get last record of each group in entityframework?

我想检索实体框架中每个 MobileNo 的最后插入记录。

这是我的 table 数据。

ID      RegNo       MobileNo    CreatedDate
26727   190077348   9696562673  13-02-2017 06:31
26729   123782783   9696562673  13-02-2017 06:35
45779   530087328   5878525875  07-02-2017 07:23
99902   120058572   7379130560  08-02-2017 12:39
64477   180073650   7417516480  10-02-2017 13:47
81839   240087264   7754990580  11-02-2017 10:47 

并且想要像

这样的输出
ID      RegNo       MobileNo    CreatedDate 
26729   123782783   9696562673  13-02-2017 06:35
45779   530087328   5878525875  07-02-2017 07:23 
99902   120058572   7379130560  08-02-2017 12:39
64477   180073650   7417516480  10-02-2017 13:47
81839   240087264   7754990580  11-02-2017 10:47 

假设您的 table 的名字是 Items:

var result = dbContext.Items.GroupBy(x => x.MobileNo)
                      .Select(x => x.OrderByDescending(y => y.CreatedDate).First());

运行 样本:https://dotnetfiddle.net/3ud2pB

试试这个。

;WITH cte AS
(
   SELECT *,
         ROW_NUMBER() OVER (PARTITION BY MobileNo ORDER BY CreatedDate DESC) AS rn
   FROM yourtablename
)
SELECT *
FROM cte
WHERE rn = 1