Uvidíme. Máte dokonale platný dotaz LINQ to Entities, funguje s poskytovatelem SqlServer a nefunguje s poskytovatelem MySQL. Zní mi to jako chyba poskytovatele MySQL, co jiného by to mohlo být? Ale který? Nechápu, jak to pomáhá, ale vsadil jsem na #78610 (iniciováno migrace ASP MVC MsSql na MySQL příspěvek SO), označený jako duplikát #76663 . Nebo #77543 atd.
Takže konektor MySQL má problémy s OrderBy v poddotazech. Jako řešení bych mohl navrhnout (pokud je to možné) alternativní způsob implementace MaxBy , tj. (v pseudokódu) namísto seq.OrderByDescending(col).FirstOrDefault() použijte seq.FirstOrDefault(col == seq.Max(col)) vzor, který funguje:
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();