Laisse voir. Vous avez une requête LINQ to Entities parfaitement valide, elle fonctionne avec le fournisseur SqlServer et ne fonctionne pas avec le fournisseur MySQL. Cela ressemble à un bogue du fournisseur MySQL pour moi, qu'est-ce que cela pourrait être d'autre? Mais lequel? Je ne vois pas en quoi cela aide, mais misez sur #78610 (initié par migration ASP MVC MsSql vers MySQL SO post), marqué comme doublon de #76663 . Ou #77543 etc.
Le connecteur MySQL a donc des problèmes avec OrderBy
dans les sous-requêtes. Comme solution de contournement, je pourrais suggérer (si possible) la manière alternative d'implémenter MaxBy
, c'est-à-dire (en pseudo-code) au lieu de seq.OrderByDescending(col).FirstOrDefault()
utilisez le seq.FirstOrDefault(col == seq.Max(col))
modèle qui fonctionne :
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();