sql >> Base de Datos >  >> RDS >> Mysql

Columna desconocida 'Proyecto2. Nombre' en 'cláusula where'

Vamos a ver. Tiene una consulta LINQ to Entities perfectamente válida, funciona con el proveedor SqlServer y no funciona con el proveedor MySQL. Me parece un error del proveedor de MySQL, ¿qué más podría ser? ¿Pero cual? No veo cómo ayuda eso, pero apuesto por #78610 (iniciado por Migración de ASP MVC MsSql a MySQL SO post), marcado como duplicado de #76663 . O #77543 etc.

Entonces el conector MySQL tiene problemas con OrderBy en subconsultas. Como solución alternativa, podría sugerir (cuando sea posible) la forma alternativa de implementar MaxBy , es decir (en pseudocódigo) en lugar de seq.OrderByDescending(col).FirstOrDefault() use el seq.FirstOrDefault(col == seq.Max(col)) patrón 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();