Mal sehen. Sie haben eine vollkommen gültige LINQ to Entities-Abfrage, sie funktioniert mit dem SqlServer-Anbieter und nicht mit dem MySQL-Anbieter. Klingt für mich nach einem MySQL-Anbieterfehler, was könnte es sonst sein? Aber welcher? Ich verstehe nicht, wie das hilft, aber ich setze auf #78610 (initiiert durch Migration von ASP MVC MsSql zu MySQL SO post), markiert als Duplikat von #76663 . Oder #77543 usw.
Der MySQL-Connector hat also Probleme mit OrderBy
in Unterabfragen. Als Problemumgehung könnte ich (wenn möglich) die alternative Methode zur Implementierung von MaxBy
vorschlagen , also (im Pseudocode) statt seq.OrderByDescending(col).FirstOrDefault()
Verwenden Sie seq.FirstOrDefault(col == seq.Max(col))
Muster, das funktioniert:
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();