Biarkan melihat. Anda memiliki kueri LINQ to Entities yang sangat valid, ini berfungsi dengan penyedia SqlServer dan tidak berfungsi dengan penyedia MySQL. Kedengarannya seperti bug penyedia MySQL bagi saya, apa lagi yang bisa terjadi? Tapi yang mana? Saya tidak melihat bagaimana itu membantu, tetapi bertaruh pada #78610 (diprakarsai oleh Migrasi ASP MVC MsSql ke MySQL SO post), ditandai sebagai duplikat dari #76663 . Atau #77543 dll.
Jadi konektor MySQL memiliki masalah dengan OrderBy
dalam subquery. Sebagai solusinya, saya dapat menyarankan (bila memungkinkan) cara alternatif untuk menerapkan MaxBy
, yaitu (dalam kode semu) alih-alih seq.OrderByDescending(col).FirstOrDefault()
gunakan seq.FirstOrDefault(col == seq.Max(col))
pola yang berfungsi:
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();