从当前返回每个具有日期时间的记录的大型 linq 查询中获取“最新”日期时间

Mar*_*tin 2 .net c# linq group-by inner-join

我有一个相当长的 linq 查询,一切正常。但在最终连接中,我正在对一个有日志的表进行内部连接,日志返回 50 多条记录,我只想要最新的记录。

这是一个例子

var tst = from w in context.storage
          join p in context.products on w.id equals p.wid
          join l in context.logger on p.id equals l.pid
          select new
          {
              storageid = w.id,
              productid = p.id
              productname = p.name
              bought = l.when
          };
Run Code Online (Sandbox Code Playgroud)

所以快速解释一下发生了什么,每个产品都存储在一个存储中心,并且有一个购买该产品的日志,如果购买了 100 次,那么记录器中有 100 条记录。

所以目前它为 productid = 5 返回 50 条记录......为什么.. 因为它被购买了 50 次但我只想要 1 条记录,因此我只想要来自记录器的最新日期时间。

任何人都可以帮忙吗?我有点卡住了。

aba*_*hev 5

使用result.Distinct(x => x.Prop)只得到唯一条目

使用result.Max(x => x.Prop)以获得最新的日期,并Min()获得最早的。