我试图使预先存在的C#数据访问框架现代化,并且迁移到OData听起来像是一个合理的最终目标。然而,大爆炸转换似乎不太可能成功;我最初只想使用OData的一部分 - 特别是查询语法。
编辑:要清楚,查询目前不通过类似REST的界面传输(虽然涉及HTTP,但它只是间接使用;查询和结果以更大的捆绑包传输有很多其他数据),所以使用web api和"在幕后"它提供的转换不是一种选择。
给定类型TEntity
和LINQ表达式树filter
可以作为Queryable.Where<TEntity>(source, filter)
的参数,如何生成OData客户端将在OData中发送的查询$filter
条款?反过来说:如何将$filter
子句解析回表达式树? OData图书馆必须已经在幕后进行,但我不知道在哪里寻找合适的代码。
这个主题的温和变化对我也有用;例如如果不仅仅生成$ filter子句而且生成完整(但是假的)请求更简单,那也很好 - 只要客户端没有实际的HTTP请求,并且没有服务器执行查询。我更愿意迁移到最新版本(v4),但这不是必需的。
本质上:是否可以将OData用作查询(de)序列化器?