我正在使用带有OData查询支持的Web API(夜间),虽然我知道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的字符串返回。
任何人都知道任何可以做这样的事情的图书馆吗?
答案 0 :(得分:5)
答案 1 :(得分: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-services/
基于wiki(而不是基于对linq2rest的任何经验),它似乎是双向的 - LINQ表达式查询字符串,查询字符串到LINQ表达式。
答案 2 :(得分:1)
您可以尝试以下操作: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))