[英]C# LINQ Filter deep nested list
我有一个基于包含其他列表的列表的结构。 我需要根据列表最深处的属性值过滤列表。
现在我正在这样做:
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 过滤它们。
首先,是否可以在 1 个步骤中执行此操作(包括使用连接进行过滤),其次,第二部分不起作用,因为我的列表变空了,但我确定该类型的操作会获得值.
顺便说一句,使用 .NET Core 2.0.3!
要回答你的第一部分,你可以这样做
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)))
对于您的第二部分,它应该可以正常工作,请检查您的数据,因为这非常简单
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.