有人要求我将 T-SQL 语句转换为 LINQ to EF 查询:
SELECT * FROM CopperPrices
where ID in
(select max(ID) as ID from copperprices group by market, pname)
我使用常见的 LINQ-TO-OBJECT 想法并给出以下答案:
class CopperPrice
{
public int ID { get; set; }
public string Market { get; set; }
public string PName { get; set; }
}
var result = from p in copperPrices
group p by new { Market = p.Market, PName = p.PName } into g
select g.OrderByDescending(p => p.ID).First();
但由于以下异常,它在 EF 中不起作用:
方法 'First' 只能用作最终查询操作。考虑在这种情况下使用“FirstOrDefault”方法
上面的 T-SQL 语句可以转换成一条 LINQ 查询语句吗?