Как использовать метод Odata contains во всех/любых методах, если у меня есть несколько значений, которые может содержатC#

Место общения программистов C#
Ответить
Anonymous
 Как использовать метод Odata contains во всех/любых методах, если у меня есть несколько значений, которые может содержат

Сообщение Anonymous »

У меня есть массив товаров, каждый из которых имеет поле «TargetId».
Отдельный список идентификаторов тарифов:

Код: Выделить всё

[123,345,567,789]
Мне нужно отфильтровать элементы, содержащие часть одного из этих идентификаторов (а не равенство).
Если я хочу проверить равенство, запрос будет выглядеть так:

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»