我正在尝试返回TrackInformationRecord的列表,该列表通过以下方式完成:

return _trackInformationRepository
           .Fetch(t => t.TrackPartId == trackPart.Id && t.IsDeleted == false)
           .ToList();


但是,TrackInformationRecord在TrackInformationRecord.Sessions中包含SessionInformationRecord的列表,我只想使用IsDeleted == false进行Session。

我尝试了以下操作,但没有成功:

return _trackInformationRepository
      .Fetch(t => t.TrackPartId == trackPart.Id && t.IsDeleted == false
         && t.Sessions.Where(s => s.IsDeleted == false))
      .ToList();


任何建议将不胜感激。

最佳答案

如果要确保所有Session的对象IsDeleted都为false,则需要All

return _trackInformationRepository
      .Fetch(t => t.TrackPartId == trackPart.Id && !t.IsDeleted
                   && t.Sessions.All(s => !s.IsDeleted)).ToList();


但是,如果您希望任何Session的对象IsDeleted为false,则需要Any-

return _trackInformationRepository
      .Fetch(t => t.TrackPartId == trackPart.Id && !t.IsDeleted
                   && t.Sessions.Any(s => !s.IsDeleted)).ToList();


附带一提,您可以像编写t.IsDeleted == false一样编写!t.IsDeleted

09-30 19:22