OData Web API 查询拦截器

Sri*_*vas 0 asp.net odata asp.net-web-api asp.net-web-api2 queryinterceptor

OData 端点是使用 ASP.NET Web API 2.0 创建的

尝试在 ODataController 中创建一个查询拦截器,如下面的代码所示:

public class AVMItemController : ODataController
{
    ADWAppContext sampleADW = new ADWAppContext("Server=XXX;Database=XXX;User ID=XXX;password=xxx;Trusted_Connection=false;Encrypt=true");

    // GET: odata/AVM
    [EnableQuery(PageSize=25)]
    public IQueryable<ADWAppContext.AVMItem> GetAVMItems()
    {
        return sampleADW.AVMItems.AsQueryable<ADWAppContext.AVMItem>();
    }

    [QueryInterceptor("AVMItems")]
    public Expression<Func<ADWAppContext.AVMItem, bool>> FilterAVMItems()
    {
        return avm => avm.avmId > 1000;
    }
}
Run Code Online (Sandbox Code Playgroud)

所有 OData 查询的处理都没有考虑 Query Interceptor 中提到的谓词。我在查询拦截器方法中有一个从未命中的断点。

len*_*est 5

Web API OData 不支持查询拦截器。