0

のODataエンドポイント以下のコードに示すようにODataControllerでクエリインターセプターを作成しようとしていASP.NETのWeb API 2.0ODataのウェブAPIクエリインターセプタ

を使用して作成されます。

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; 
    } 
} 

すべてのODataクエリQuery Interceptorに記述されている述語を考慮して処理されません。 ヒットしないQuery Interceptor Methodにブレークポイントがあります。

答えて

3

Web API ODataでは、クエリインターセプタはサポートされていません。

+0

実際にはありません。https://blogs.msdn.microsoft.com/odatateam/2011/01/20/odata-and-oauth-protecting-an-odata-service-using-oauth-2-0/ –

+0

@HrvojeMatić:その記事は古いです。コードはODataの古いWCF実装に基づいています。クエリインターセプタは、Web APIのODataではサポートされていません。 – lencharest