我有一个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}}