Кто-то просит меня преобразовать оператор 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 из-за следующего исключения:
Метод «Первый» можно использовать только как окончательную операцию запроса. Рассмотрите возможность использования метода «FirstOrDefault» в этом экземпляре вместо этого.
Можно ли преобразовать приведенный выше оператор T-SQL в один оператор запроса LINQ?
ToList()
внутри проекции. Вы проверили это? 19.07.2012