LINQ:按聚合分组,但仍然从最近一行获取信息?

Nat*_*ate 6 c# linq

假设我有一张包含运输历史的表格.我想编写一个查询来计算每个用户的发货量,并从该表中该用户的最新条目中获取发货名称.

表结构为简单起见:ShipmentID MemberID ShippingName ShippingDate

如何编写LINQ C#查询来执行此操作?

Jon*_*eet 5

听起来可能想要这样的东西:

var query = from shipment in context.ShippingHistory
            group shipment by shipment.MemberID into g
            select new { Count = g.Count(),
                     MemberID = g.Key,
                     MostRecentName = g.OrderByDescending(x => x.ShipmentDate)
                                       .First()
                                       .ShipmentName };
Run Code Online (Sandbox Code Playgroud)