Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Unbekannte Spalte „Project2.Name“ in „Where-Klausel“

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