在应用查询之后和返回数据之前,有没有办法改变odata的结果?

时间:2016-12-28 12:23:48

标签: asp.net-web-api odata

我有一个WebAPI EnableQuery控制器,我需要在应用查询之后和返回数据之前执行某些操作。在ApplyQuery我不能用扩展方法来做到这一点。

实际上我需要在将数据返回给客户端之前删除一些记录。此操作无法通过URI / Query / Filter完成。

更新

请参阅以下代码。实际过滤器应用于第一个 public class EQueryAttribute : EnableQueryAttribute { public override IQueryable ApplyQuery(IQueryable queryable, ODataQueryOptions queryOptions) { var retval = base.ApplyQuery(queryable, queryOptions); if (queryable.ElementType.Name == "ProductInfoDto") { var q = retval as IQueryable<ProductInfoDto>; return new List<ProductInfoDto>() { new ProductInfoDto { PasName = "123" } }.AsQueryable(); } return retval; } public override object ApplyQuery(object entity, ODataQueryOptions queryOptions) { return base.ApplyQuery(entity, queryOptions); } public override Task OnActionExecutedAsync(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken) { return base.OnActionExecutedAsync(actionExecutedContext, cancellationToken); } } 的返回值。如果我在其中进行过滤,则忽略uri过滤器。

我试图查看是否存在扩展程序的代码:

{{1}}

0 个答案:

没有答案