OData Linq查询字符串

时间:2012-10-31 19:47:16

标签: c# linq odata

我正在使用带有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的字符串返回。

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

3 个答案:

答案 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))