C# LINQ Lambda按多列分组,然后选择多列

C# LINQ Lambda按多列分组,然后选择多列,c#,linq,lambda,C#,Linq,Lambda,假设表中有一些数据: Id OrderNr名称日期 1约翰2011-01-01 约翰2012-01-01 3.2保罗2011-02-02 我想使用linq(lambda表达式)按OrderNr和Name进行分组,并选择OrderNr、Name和首次出现日期。因此,结果应该是: 订单编号名称日期 约翰一世2011-01-01 2保罗2011-02-02 这应该如何写?这应该可以: var results1 = (from t in DB.Table group t

假设表中有一些数据:

Id OrderNr名称日期

1约翰2011-01-01

约翰2012-01-01

3.2保罗2011-02-02

我想使用linq(lambda表达式)按OrderNr和Name进行分组,并选择OrderNr、Name和首次出现日期。因此,结果应该是:

订单编号名称日期

约翰一世2011-01-01

2保罗2011-02-02

这应该如何写?

这应该可以:

var results1 = (from t in DB.Table
                group t by new { t.OrderN, t.Name } into grp
                select new
                {
                    OrderN = grp.Key.OrderN,
                    Name = grp.Key.Name,
                    FirstDate = grp.FirstOrDefault().Date
                }).ToList();

执行了几乎相同的操作,但使用了.First(),这两种方法都不起作用。Sql事件探查器显示与项目中使用的ORM相关的错误。谢谢你的回答,这个问题一定与其他话题有关。