首页 > 解决方案 > 如何将我的部分 In Memory LINQ GroupBy 查询转换为完整的数据库查询,还是应该使用原始 sql?

问题描述

我尝试了不同的方法来解决这个问题,但要么它不允许我包含,要么它为 GroupBy 语句提供错误。

在上面的代码中,我试图通过 FOREIGN KEY 即 LocationId 对 MedicineEquipments 进行分组,并使用该 LocationId 获取最新记录,并且还包括 Location 和 MedicineEquipmentNavigation 以及记录。

var medicineEquipmentShops = await dbContext.MedicineEquipments
                                    .Where(x => x.CityId == cityId  && x.MedicineEquipmentId == medicineEquippmentId)
                                    .Include(x => x.Location)
                                    .Include(x =>x.MedicineEquipmentNavigation)
                                    .ToListAsync();
medicineEquipmentShops = medicineEquipmentShops.GroupBy(x => x.LocationId)
                                        .Select(x => x.OrderByDescending(y => y.UpdatedOn).FirstOrDefault())
                                        .OrderByDescending(x => x.IsVerified)
                                        .ThenByDescending(x => x.Stock)
                                        .ThenByDescending(x => x.Votes)
                                        .ToList();

标签: sqllinqentity-framework-core

解决方案


推荐阅读