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();