好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

LINQ SQL分组取最近一条记录

* FROM ( select ROW_NUMBER() over (partition by [ custid ] order by [ orderdate ] desc ) AS newIndex, * from Sales.Orders ) as T where T.newIndex = 1

执行结果,已经按照客户分组,并且按时间顺序生成序号。

对应LINQ代码为

 var  table = contex.GetTable<Orders> ().ToList();

                  var  data = table.OrderByDescending(a => a.orderdate).GroupBy(a =>  a.custid)
                    .Select(g  =>  new  { g, count =  g.Count() })
                    .SelectMany(t  => t.g.Select(b =>  b)
                        .Zip(Enumerable.Range(  1 , t.count), (j, i) =>  new  { j.custid, j.shipname, rn = i }));

 

LINQ SQL分组取最近一条记录

标签:

查看更多关于LINQ SQL分组取最近一条记录的详细内容...

  阅读:30次