Сам OData не ограничивает длину URL-адреса, но, как вы заметили, это делают большинство клиентов и серверов. Поэтому обычно рекомендуется не создавать слишком длинные URL-адреса.
Проблема, на которую вы ссылаетесь (реализация оператора Contains или что-то подобное), имеет два возможных обходных пути:
1) Используйте сервисную операцию для обработки такого запроса. Возможно, вы можете передать несколько входных значений, закодированных как строка или что-то в этом роде, или, возможно, операция службы все равно знает их заранее.
2) Используйте длинный фильтр $, но отправьте запрос в пакетном запросе $. Преимущество в том, что ограничение на URL-адрес намного больше, и очень маловероятно, что вы его достигнете. Недостатком является то, что даже если вы пытаетесь выполнить запрос GET, из-за пакета $ он отправляется как запрос POST через Интернет и, следовательно, не будет кэшироваться.
person
Vitek Karas MSFT
schedule
22.11.2010