Để xem. Bạn có một truy vấn LINQ to Entities hoàn toàn hợp lệ, nó hoạt động với nhà cung cấp SqlServer và không hoạt động với nhà cung cấp MySQL. Nghe có vẻ giống như một lỗi của nhà cung cấp MySQL đối với tôi, nó còn có thể là gì nữa? Nhưng cái nào? Tôi không hiểu cách đó hữu ích như thế nào, nhưng hãy đặt cược của tôi vào # 78610 (được khởi xướng bởi ASP MVC MsSql di chuyển sang MySQL SO đăng), được đánh dấu là trùng lặp với # 76663 . Hoặc # 77543 vv
Vì vậy, trình kết nối MySQL có vấn đề với OrderBy
trong các truy vấn con. Để giải quyết vấn đề, tôi có thể đề xuất (khi có thể) cách thay thế để triển khai MaxBy
, tức là (trong mã giả) thay vì seq.OrderByDescending(col).FirstOrDefault()
sử dụng seq.FirstOrDefault(col == seq.Max(col))
mẫu hoạt động:
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();