2016-08-26 17 views
0

を取得ODATA:は、Web API 2を変更すると、私は怒鳴るようなODATAコントローラgetメソッドを持つクエリ結果

public class ProductController : ApiController 
{ 
    [MyEnableQuery(PageSize = 48, AllowedQueryOptions = AllowedQueryOptions.OrderBy | AllowedQueryOptions.Top | AllowedQueryOptions.Skip | AllowedQueryOptions.InlineCount | AllowedQueryOptions.Filter, AllowedFunctions = AllowedFunctions.SubstringOf | AllowedFunctions.ToLower)] 

    public IQueryable<tbDefine_Products> GetProducts([FromODataUri] int CategoryID) 
    { 
     ProductHandler _handler = new ProductHandler(); 
     IQueryable<tbDefine_Products> _list =_handler.GetProductActiveList(CategoryID); 
     return _list; 
    } 
} 

今、私は_listのようなものにしたい...それはclin​​etし送信する前に私のクエリの結果を変更したいです.Tolist()、その後、私はActionFilterAttributeとActionFilterAttribute.OnActionExecutedと HttpActionExecutedContextクラスについて少し読んだが、私は私のアイデア

実装方法を知らない結果配列

 List<tbDefine_Products> _list2 = _list.ToList<tbDefine_Products>(); 
     for (int i = 0; i < _list2.Count; i++) 
     { 
     /*some code here to modify result */ 
     } 

を反復処理

答えて

0

すでにEnableQuery属性についての実装を持っているようだ:MyEnableQuery、あなたはメソッドオーバーライドする必要があります。

public virtual IQueryable ApplyQuery(IQueryable queryable, ODataQueryOptions queryOptions) 

は、最初のクエリの結果を取得し、その結果フィルタ:

var result = base.ApplyQuery(queryable, queryOptions); 
// filter the result. 
return result; 
+0

非常Thxをします。 ..できます! –

関連する問題