C# LINQ查询从表中选择记录,其中2列具有最大值

C# LINQ查询从表中选择记录,其中2列具有最大值,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,我在sql server表中有以下数据: EmployeeId ForMonth ForYear Value 1 1 2015 45000.00 1 6 2015 35000.00 1 12 2014 66666.00 2 1 2015 70000.00 2

我在sql server表中有以下数据:

EmployeeId  ForMonth    ForYear     Value   
1           1           2015        45000.00
1           6           2015        35000.00
1           12          2014        66666.00
2           1           2015        70000.00
2           5           2015        80000.00
我需要找到LINQ to SQL查询,以便为每个EmployeeId选择最大ForMonth和最大ForYear的记录。 因此,结果应该是:

EmployeeId  ForMonth    ForYear     Value   
1           6           2015        35000.00
2           5           2015        80000.00
这并不是说我在发布这个问题之前没有尝试解决这个问题,而是因为我不知道如何在SQL server中编写这个查询,所以我没有任何LINQ代码可以添加。
如果您觉得这是个糟糕的问题,请让我删除它。

我假设您想要的是年度最大
和月度最大
的记录

var result = (from db in MYDBContext
             orderby db.ForYear descending, db.ForMonth descending
             select db).First();

每个员工只需要一条记录,因此需要按ID分组。然后按最近的年/月对分组进行排序,并选择第一条记录

var query = from e in db.Employees
            group e by e.EmployeeId into g
            select g.OrderByDescending(e => e.ForYear)
                    .ThenByDescending(e => e.ForMonth)
                    .FirstOrDefault();

我有一个梦想,选民们开始善意地说,至少为什么他们否决了一个问题,并导致了一个用户的分数损失:/当然我试过了,但我没有像样的代码发布,我在弄清楚如何在sql server中编写查询时遇到了问题,所以我没有什么东西可以用LINQ写。好吧,我会尝试用我得到的更新我的问题,或者你会建议现在删除它吗?尝试回答中的解决方案…非常感谢这个优雅而简单的解决方案@萨利姆我很高兴能帮上忙!