12

我正在使用具有 OData 查询支持的 Web API (nighties),虽然我知道 WCF 库使您能够查询 WCF RIA 服务 URL,但我正在寻找的是一种生成 Odata 查询字符串的轻量级方式像 LinqPad 一样,但更通用。

例如,如果我们知道服务返回特定类型的“ProductDTO”,我希望能够执行以下操作:

(from p in ODataSource<ProductDTO>
 where p.Name == "hi"
 select new {p.Model, Name}).ToODataQuery();

这将返回适当的 $filter 和 $select 命令作为可以附加到 URL 的字符串。

任何人都知道任何可以做这样的事情的图书馆吗?

4

3 回答 3

6

另一种可能性是在这里使用Simple.OData.Client作为大纲:Can this library is used to generate the request url only? .

于 2015-04-11T12:59:47.020 回答
3

你可以试试这个:https ://github.com/ubergeoff/HollowPoint.Azure

ODataSource.Query()
.Where(t => t.Age >= 16 && t.Age < 33)
.ToODataString();   

将输出 OData 查询文本:

((Age ge 16) and (Age lt 33))
于 2018-10-25T06:26:23.393 回答
2

我没有使用它,但正在研究一个类似的主题,这看起来应该提供您正在寻找的功能: https ://bitbucket.org/jjrdk/linq2rest/wiki/Home

这是一篇文章,展示了将其用作 oData 客户端: http ://blog.petegoo.com/index.php/2012/03/11/creating-a-net-queryable-client-for-asp-net-web- api-odata-服务/

基于 wiki(而不是基于 linq2rest 的任何经验),它似乎是双向的 - LINQ 表达式到查询字符串,以及查询字符串到 LINQ 表达式。

于 2013-01-07T04:19:22.690 回答