DynamicWhere.ex
DynamicWhere.exv2.1.0·docs

Example 13: Nested Collection Navigation

When a field path traverses a collection property (e.g. Orders.OrderItems.ProductName), the library automatically wraps the inner segment in a .Any() lambda — so the predicate evaluates per-element.

Condition

{
  "sort": 1,
  "field": "Orders.OrderItems.ProductName",
  "dataType": "Text",
  "operator": "IContains",
  "values": ["laptop"]
}

Generated expression

Note
Generated expression:
Orders.Any(i1 => i1.OrderItems.Any(i2 => i2.ProductName != null && i2.ProductName.ToLower().Contains("laptop")))

Each collection segment in the path becomes another nested .Any() level — so deep paths through collections compose cleanly into a single boolean expression EF Core can translate.