在 LINQ 中提取子实体满足特定条件的项
本文关键字:满足 特定条件 实体 LINQ 提取 | 更新日期: 2023-09-27 18:27:38
我正在尝试返回TrackInformationRecord的列表,由以下人员完成:
return _trackInformationRepository
.Fetch(t => t.TrackPartId == trackPart.Id && t.IsDeleted == false)
.ToList();
但是,TrackInformationRecord 包含 TrackInformationRecord.Sessions 中的 SessionInformationRecord 列表,我只想使用 IsDelete == false 进行会话。
我尝试了以下方法,但没有用:
return _trackInformationRepository
.Fetch(t => t.TrackPartId == trackPart.Id && t.IsDeleted == false
&& t.Sessions.Where(s => s.IsDeleted == false))
.ToList();
任何建议将不胜感激。
如果要确保所有会话的对象 IsDeleted(都应为 false(,则需要All
return _trackInformationRepository
.Fetch(t => t.TrackPartId == trackPart.Id && !t.IsDeleted
&& t.Sessions.All(s => !s.IsDeleted)).ToList();
但是,如果您希望任何会话的对象IsDelete为假,则需要Any
-
return _trackInformationRepository
.Fetch(t => t.TrackPartId == trackPart.Id && !t.IsDeleted
&& t.Sessions.Any(s => !s.IsDeleted)).ToList();
附带说明一下,与其写t.IsDeleted == false
,不如像!t.IsDeleted
一样写。