我的基于包含其他列表的列表的结构。我需要根据列表最深部分的属性值过滤列表。
现在我正在这样做:
queryable = queryable
.Include(x => x.Carriers)
.ThenInclude(c => c.CarrierActions)
.ThenInclude(ca => ca.Action)
.ThenInclude(ac => ac.ActionFacts);
queryable = queryable
.Where(x => x.Carriers.Any(
carriers => carriers.CarrierActions.Any(
carrieractions =>
carrieractions.Action.ActionTypeId ==
ActionTypeEnum.DosemeterCalculateDeepDose)));
我加入了所需的表格,然后根据顶部列表下方的3个级别的ActionTypeId过滤它们。
首先,是否可以在一步中完成此操作(包括使用连接进行过滤),其次,第二部分无效,因为我的列表变空,但我确定这些操作使用该类型获取值。
使用.NET Core 2.0.3 btw!
答案 0 :(得分:2)
要回答你的第一部分你可以做到这一点,也许是你的要求
queryable = queryable
.Include(x => x.Carriers)
.ThenInclude(c => c.CarrierActions)
.ThenInclude(ca => ca.Action)
.ThenInclude(ac => ac.ActionFacts)
.Where(x => x.Carriers.Any(
carriers => carriers.CarrierActions.Any(
carrieractions =>
carrieractions.Action.ActionTypeId ==
ActionTypeEnum.DosemeterCalculateDeepDose)))
对于你的第二部分,它应该正常工作,id检查你的数据,因为这是非常直接的前进