我有一个可以正常工作的OData URI,传递一个名为gridsize的参数值并从Results中检索数据。这是URI,它工作正常:
http://<webservice>/MULTI_POINT_PARAMParameters(gridsize=0.1m)/Results
我正在尝试使用LINQ使上述URI工作。我正在使用MVC服务引用来生成代理类。所以我尝试了这个LINQ:
var query = (from x in context.MULTI_POINT_PARAMParameters
where
x.gridsize == 0.1M
select x);
然而,上面的LINQ生成了这个URI,它无法说“找不到segement”:
http://<webservice>/MULTI_POINT_PARAMParameters()?$filter=gridsize eq 0.1M}
我真正想要LINQ生成的是这个,我知道有效:
http://<webservice>/MULTI_POINT_PARAMParameters(gridsize=0.1m)/Results
如何让LINQ生成我想要的URI?我看过Linq2rest,但是如果我想自己明确地编写LINQ术语,而不是让Linq2rest生成我看不到的“隐藏”术语,那么就无法看到它如何帮助我。
答案 0 :(得分:0)
据我所知,如果你想在OData中添加过滤器,你必须使用“$ filter”。
如果你想使用“MULTI_POINT_PARAMParameters(gridsize = 0.1m)”那么你可能不得不使用动态生成LINQ。
动态生成后,您的查询可能看起来像这样
var query = (from x in context.MULTI_POINT_PARAMParameters(gridsize=0.1m)
select x);
我只是想给你一个思考的方向。让我们看看别人对你的问题有什么看法。