У меня есть массив товаров, каждый из которых имеет поле «TargetId».
Отдельный список идентификаторов тарифов:
Мне нужно отфильтровать элементы, содержащие часть одного из этих идентификаторов (а не равенство).
Если я хочу проверить равенство, запрос будет выглядеть так:
Код: Выделить всё
qOrder.orderItems.all((qOrderItem) =>
qOrderItem.tariffId.in(...tariffIds))
)
Если я использую метод CONTAINS вместо IN и просто распределяю массив внутри него, запрос принимает только первый встреченный тарифный идентификатор вместо того, чтобы объединять его в цепочку с помощью оператора OR, как в операторе IN.
Код: Выделить всё
qOrder.orderItems.all((qOrderItem) =>
qOrderItem.tariffId.contains(...tariffIds))
)
Во-первых, машинописный текст не позволяет мне печатать таким образом. Во-вторых, если я проигнорирую ts, мой запрос превратится в orderItems/all(a:contains(a/tariffId,'9341')) содержащий только один из тарифов.
Есть ли способ Я могу использовать метод ALL или ANY с несколькими содержащими запросами?
Подробнее здесь:
https://stackoverflow.com/questions/784 ... l-values-a