Vediamo. Hai una query LINQ to Entities perfettamente valida, funziona con il provider SqlServer e non funziona con il provider MySQL. Mi sembra un bug del provider MySQL, cos'altro potrebbe essere? Ma quale? Non vedo come questo aiuti, ma scommetto su #78610 (avviato da Migrazione da ASP MVC MsSql a MySQL SO post), contrassegnato come duplicato di #76663 . Oppure #77543 ecc.
Quindi il connettore MySQL ha problemi con OrderBy
nelle sottoquery. Come soluzione alternativa, potrei suggerire (quando possibile) il modo alternativo di implementare MaxBy
, ovvero (in pseudocodice) invece di seq.OrderByDescending(col).FirstOrDefault()
usa il seq.FirstOrDefault(col == seq.Max(col))
modello che funziona:
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();