Search code examples
entity-frameworkwcf-data-services

How to write 'In' queries in WCF Data Services?


How to write 'In' queries in Ado.Net WCF Data Services? I have tried the following code.

IList<int> orderIds = new List<int> { 59810, 59811, 59812, 59813, 59814 };
var lstorders = _context.Orders
                        .Where(o => orderIds.Contains(o.customerId))
                        .ToList<Orders>();

But the above code is not working. I am getting following error.

Test 'MyTest' failed: System.NotSupportedException : The expression (([10007].customerId != null) And value(System.Collections.Generic.List1[System.Int32]).Contains([10007].customerId.Value)) is not supported. at System.Data.Services.Client.ExpressionWriter.ExpressionToString(DataServiceContext context, Expression e) at System.Data.Services.Client.UriWriter.VisitQueryOptionExpression(FilterQueryOptionExpression fqoe) at System.Data.Services.Client.UriWriter.VisitQueryOptions(ResourceExpression re) at System.Data.Services.Client.UriWriter.VisitResourceSetExpression(ResourceSetExpression rse) at System.Data.Services.Client.DataServiceALinqExpressionVisitor.Visit(Expression exp) at System.Data.Services.Client.UriWriter.Translate(DataServiceContext context, Boolean addTrailingParens, Expression e, Uri& uri, Version& version) at System.Data.Services.Client.DataServiceQueryProvider.Translate(Expression e) at System.Data.Services.Client.DataServiceQuery1.Execute() at System.Data.Services.Client.DataServiceQuery1.GetEnumerator() at System.Collections.Generic.List1..ctor(IEnumerable1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)


Solution

  • This might help.

    Select entities where ID in int array - WCF Data Services, LINQ