【发布时间】:2016-04-13 06:38:17
【问题描述】:
我有一个正常工作的 OData 控制器,它支持所有正常的 get/put 等。
我要做的是从客户端传递一个普通的 odata $filter 字符串,在服务器上解析并执行过滤器,然后在生成的 IEnumerable 上运行一些代码。
我已经搞砸了 ODataQueryContext、ODataQueryOptions、FilterQueryOption 等,但没有真正得到任何地方。
有人有任何工作示例吗?
编辑:我已经添加了我的功能骨架,只需要填写空白
public HttpResponseMessage GetJobs(string filter)
{
*** How to convert the filter into IQueryable<Job> ***
var queryable = ?????
var settings = new ODataQuerySettings();
var jobs = queryOptions.ApplyTo(querable, settings) as IQueryable<Job>;
CsvSerializer csvSerializer = new CsvSerializer();
string csv = csvSerializer.Serialise(jobs);
string fileName = string.Format("{0} Jobs.csv", filter);
return CreateCsvResponseMessage(csv, fileName);
}
【问题讨论】:
标签: odata