Vamos ver. Você tem uma consulta LINQ to Entities perfeitamente válida, ela funciona com o provedor SqlServer e não funciona com o provedor MySQL. Soa como um bug do provedor MySQL para mim, o que mais poderia ser? Mas qual deles? Não vejo como isso ajuda, mas aposto em #78610 (iniciado por migração ASP MVC MsSql para MySQL SO post), marcado como duplicado de #76663 . Ou #77543 etc.
Portanto, o conector MySQL tem problemas com
OrderBy
em subconsultas. Como solução alternativa, eu poderia sugerir (quando possível) a maneira alternativa de implementar MaxBy
, ou seja (em pseudocódigo) em vez de seq.OrderByDescending(col).FirstOrDefault()
use o seq.FirstOrDefault(col == seq.Max(col))
padrão que funciona:var Result = ctx.Items
.Where(x => x.Contact.Country == Country)
.GroupBy(p => p.Name)
.Where(g => !g.Any(x => x.Value == "X"))
.Select(g => g.FirstOrDefault(e => e.Date == g.Max(e1 => e1.Date)))
.ToList();