IN Operator

Applies To:yes OData AspNet WebApi V7yes OData AspNet WebApi V6

Starting in WebAPI OData V7.0.0 [ASP.NET | ASP.NET Core], the IN operator is a supported feature that enables a shorthand way of writing multiple EQ expressions joined by OR. For example,

GET /service/Products?$filter=Name eq 'Milk' or Name eq 'Cheese' or Name eq 'Donut'

can become

GET /service/Products?$filter=Name in ('Milk', 'Cheese', 'Donut')

Of the binary expression invoking IN, the left operand must be a single value and the right operand must be a comma-separated list of primitive values or a single expression that resolves to a collection; the expression returns true if the left operand is a member of the right operand.

Usage

IN operator is supported only for $filter at the moment and hardcoded collections are supported with parentheses. See examples below.

~/Products?$filter=Name in ('Milk', 'Cheese')
~/Products?$filter=Name in RelevantProductNames
~/Products?$filter=ShipToAddress/CountryCode in MyShippers/Regions
~/Products?$filter=Name in Fully.Qualified.Namespace.MostPopularItemNames