将OData Uri转换为相应的Linq表达式

5

我正在创建一个WCF服务,其结果不是严格的OData feed(由于复杂的原因,商业策略等)。此外,URL的格式与OData略有不同,尽管它的大部分功能非常相似。

我该如何将URI转换为Linq表达式树?

提前致谢。

3个回答

4

1
BitBucket仓库已被删除。链接无效。 - Fardeen Khan

2

目前这个功能并没有单独暴露出来。而自己编写它相当复杂(取决于您需要支持哪种类型的查询和您的模型)。 是否有必要偏离OData协议?也许您需要通过其他方式来实现所需操作。


谢谢你的回答。这很必要,因为业务策略会更改关键字,并且返回的反馈略有不同(例如:自定义扩展中的入口负载)。 - Merrin
我必须将接收到的Uri转换为Linq查询。如果它是OData,那就没问题,因为WCF数据服务已经完成了所有工作。问题在于内部几乎像OData一样,但具有不同的Uri格式。 - Merrin
我目前正在“解码”Uri,并通过动态Linq启动查询。 - Merrin
使用动态 Linq,我成功地构建了查询。谢谢大家。 - Merrin

0

您可以使用以下NuGet包:https://www.nuget.org/packages/Community.OData.Linq

它允许在任何IQuerable中使用OData文本查询参数的Linq表达式,而无需依赖于ASP.NET。

var result = query.OData().Filter("Id eq 1 or Name eq 'n3'").OrderBy("Name desc").ToArray();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接