从SQL获取Linq查询

时间:2016-04-02 19:28:56

标签: c# sql linq

我试图从SQL查询中获取Linq查询。 sql查询是:

Select * from EMP where Salary = (Select Max(Salary) from EMP)

我创建了一个Linq查询,但它根本不起作用:

var result = emps.where(emp => emp.Salary == emps.Max(emp.sal));

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

试试这个:

var maxsal = emps.Max(emp => emp.sal);
var result = emps.Where(e => e.sal == maxsal);

答案 1 :(得分:0)

假设您希望将其作为单个linq查询执行,我认为这将完成您之后的操作:

var result = emps
    .Select(e => new { Emp = e, Max = emps.Max(_ => _.Salary)})
    .Where(e => e.Max == e.Emp.Salary)
    .Select(e => e.Emp);

**更新** 您可以在单个语句中实际执行此操作:

var result = emps
    .Where(e => emps.Max(_ => _.Salary) == e.Salary);

您的原始场景是否还有其他问题?