Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Coluna desconhecida 'Project2.Name' na 'cláusula where'


Vamos ver. Você tem uma consulta LINQ to Entities perfeitamente válida, ela funciona com o provedor SqlServer e não funciona com o provedor MySQL. Soa como um bug do provedor MySQL para mim, o que mais poderia ser? Mas qual deles? Não vejo como isso ajuda, mas aposto em #78610 (iniciado por migração ASP MVC MsSql para MySQL SO post), marcado como duplicado de #76663 . Ou #77543 etc.

Portanto, o conector MySQL tem problemas com OrderBy em subconsultas. Como solução alternativa, eu poderia sugerir (quando possível) a maneira alternativa de implementar MaxBy , ou seja (em pseudocódigo) em vez de seq.OrderByDescending(col).FirstOrDefault() use o seq.FirstOrDefault(col == seq.Max(col)) padrão que funciona:
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();