0

我有一个可以按我想要的方式工作的 OData URI,传递一个名为 gridsize 的参数的值并从结果中检索数据。这是 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,它没有说“segment not found”:

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 生成我看不到的“隐藏”术语,我看不出它对我有什么帮助。

4

1 回答 1

0

据我所知,如果要在 OData 中添加过滤器,则必须使用“$filter”。

如果您想使用“MULTI_POINT_PARAMParameters(gridsize=0.1m)”,那么您可能必须使用动态生成的 LINQ。

动态生成后,您的查询可能看起来像这样

var query = (from x in context.MULTI_POINT_PARAMParameters(gridsize=0.1m)                
            select x);

我只是想给你一个思考的方向。让我们看看其他人对你的问题有什么看法。

于 2013-08-07T07:26:28.917 回答