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/