如何写“在” WCF 数据服务中的查询?
如何在 Ado.Net WCF 数据服务中编写“In”查询?我已经尝试过以下代码。
IList<int> orderIds = new List<int> { 59810, 59811, 59812, 59813, 59814 };
var lstorders = _context.Orders
.Where(o => orderIds.Contains(o.customerId))
.ToList<Orders>();
但上面的代码不起作用。我收到以下错误。
测试“MyTest”失败:System.NotSupportedException: 表达式 (([10007].customerId != 空)和 值(System.Collections.Generic.List
1[System.Int32]).Contains([10007].customerId.Value)) 不支持。 在 System.Data.Services.Client.ExpressionWriter.ExpressionToString(DataServiceContext 上下文,表达式 e) 在 System.Data.Services.Client.UriWriter.VisitQueryOptionExpression(FilterQueryOptionExpression ) 在 System.Data.Services.Client.UriWriter.VisitQueryOptions(ResourceExpression 关于) 在 System.Data.Services.Client.UriWriter.VisitResourceSetExpression(ResourceSetExpression RS) 在 System.Data.Services.Client.DataServiceALinqExpressionVisitor.Visit(表达式 经验) 在 System.Data.Services.Client.UriWriter.Translate(DataServiceContext 上下文,布尔值 addTrailingParens, 表达式e、Uri& uri、版本& 版本) 在 System.Data.Services.Client.DataServiceQueryProvider.Translate(表达式 e) 在 System.Data.Services.Client.DataServiceQuery
1.Execute() 在 System.Data.Services.Client.DataServiceQuery1.GetEnumerator() 在 System.Collections.Generic.List
1..ctor(IEnumerable1 收藏) 在 System.Linq.Enumerable.ToList[TSource](IEnumerable
1 来源)
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))
1.Execute()
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.DataServiceQuery
at System.Data.Services.Client.DataServiceQuery1.GetEnumerator()
1..ctor(IEnumerable
at System.Collections.Generic.List1
1
collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable
source)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这可能会有所帮助。
选择 ID 位于 int 数组中的实体 - WCF 数据服务、LINQ
This might help.
Select entities where ID in int array - WCF Data Services, LINQ
WCF 数据服务“WHERE IN”、“WHERE NOT IN”扩展方法示例
WCF Data Service 'WHERE IN', 'WHERE NOT IN' extension method sample