c# - 使用 LINQ 嵌套查询获取更新的最新行

标签 c# sql linq

LINQ 专家,我希望在每个用户的基础上更新最新数据,解释说我有一个表“虚拟”:

CREATE TABLE [dbo].[dummy](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [TimeStamp] [datetime] NOT NULL,
    [UserId] [int] NOT NULL,
    [TransAmount] [decimal](10, 4) NOT NULL
) ON [PRIMARY]

我想要做的是获取每个 UserId 的最新记录,使用 SQL 我会使用类似的东西:

select * from dummy d1 join 
(
select max(id) as id 
from dummy d1
Join (select distinct userid from dummy) d2 on d1.userid = d2.userid
group by d1.userid)
as d2 on d1.id = d2.id

但我希望使用 LINQ 来做到这一点。

谢谢。

最佳答案

您正在寻找的是 LINQ 中的 GroupBy。沿着这些线的东西:

var users = from d in dummy
            group d by d.userId into u
            select new 
            {
               UserId = u.Key
               Id = u.Max(i => i.Id)
            };

关于c# - 使用 LINQ 嵌套查询获取更新的最新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16821220/

相关文章:

c# - 从面板保存图像

mysql - 获取属于指定关键字和类别的项目

c# - 如何解决 linq 中的以下问题?

c# - 使用非标准规则舍入数字

c# - ASP.NET-CORE 2.2 SignalR CORS

c# - 从 WCF 返回多个响应

SQL Server : Alternative of long CASE statement

MySQL 按两列排序,一个 ASC 和一个 RAND()

linq - 具有相关子查询的 NHibernate 3.2 Linq

c# - Linq - 在列表 <> 中查找缺失值 - 效率极低