Mysql
 sql >> Database >  >> RDS >> Mysql

Colonna sconosciuta "Nome progetto2" in "clausola where"

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