C# 从SQL获取Linq查询

C# 从SQL获取Linq查询,c#,sql,linq,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)); 我应该如何解决这个问题?试试这个: var maxsal = emps.Max(emp => emp.sal); var res

我试图从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));
我应该如何解决这个问题?

试试这个:

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

假设您希望将其作为单个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);

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

错误-您的答案对于SQL查询很有用:从emp中选择MAXSalary。您好!谢谢你的帮助!//你的列是什么意思?你想选择的列。@KhairulIslam大概OP想要所有列-从EMP中选择*。你不应该使用==而不是=?@YacoubMassad,对吧-我复制代码时的错误:我提到==不是=而且,Max使用了一个lambda表达式,如EMP=>EMP.Salary