下面是我在循環中執行的一段代碼:一開始,在第一個查詢中,我獲得了位置 ID 列表。這個清單可能很長。最終,我需要找到哪個 LocationIdFamiliId > 0我已經在循環中完成了它,但我想在一個問題中完成它。這可能嗎?如果可能的話,如何實現?var locationIds = context.TblUsersDistricts .Where(d => d.UserId == userId && d.ValidityTo == null) .Select(x => x.LocationId).ToList();int familyId = 0;foreach(var item in locationIds) { familyId = (from I in context.TblInsuree join F in imisContext.TblFamilies on I.FamilyId equals F.FamilyId join V in imisContext.TblVillages on F.LocationId equals V.VillageId join W in imisContext.TblWards on V.WardId equals W.WardId join D in imisContext.TblDistricts on W.DistrictId equals D.DistrictId where(I.Chfid == chfid && D.DistrictId == item && F.ValidityTo == null && I.ValidityTo == null && V.ValidityTo == null && W.ValidityTo == null && D.ValidityTo == null) select F.FamilyId) .FirstOrDefault(); if (familyId > 0) break;};
將 LINQ 中的循環縮短為一個 QUERY
ibeautiful
2023-08-20 14:43:54