Quantcast
Channel: ASPNETWebStack Issue Tracker Rss Feed
Viewing all articles
Browse latest Browse all 7215

Commented Issue: It throws System.NotImplementedException if a bound function is called in $filter. [1651]

$
0
0
Say GetEmailsCount() is bound to Employee:
<Function Name="GetEmailsCount" IsBound="true" m:IsAlwaysBindable="true">
<Parameter Name="bindingParameter" Type="WebStack.QA.Test.OData.BoundOperation.Employee" />
<ReturnType Type="Edm.Int32" Nullable="false" />
</Function>
If below urls are requested:
~/Employees?$filter=WebStack.QA.Test.OData.BoundOperation.GetEmailsCount() lt 10
~/Employees?$filter=$it/WebStack.QA.Test.OData.BoundOperation.GetEmailsCount() lt 10
System.NotImplementedException is thrown:
":{
"message":"Unknown function 'WebStack.QA.Test.OData.BoundOperation.GetEmailsCount'.","type":"System.NotImplementedException","stacktrace":"
at System.Web.OData.Query.Expressions.FilterBinder.BindSingleValueFunctionCallNode(SingleValueFunctionCallNode node) in c:\\WebApi\\aspnetwebstack\\src\\System.Web.OData\\OData\\Query\\Expressions\\FilterBinder.cs:line 579\r\n
at System.Web.OData.Query.Expressions.FilterBinder.Bind(QueryNode node) in c:\\WebApi\\aspnetwebstack\\src\\System.Web.OData\\OData\\Query\\Expressions\\FilterBinder.cs:line 196\r\n
at System.Web.OData.Query.Expressions.FilterBinder.BindBinaryOperatorNode(BinaryOperatorNode binaryOperatorNode) in c:\\WebApi\\aspnetwebstack\\src\\System.Web.OData\\OData\\Query\\Expressions\\FilterBinder.cs:line 294\r\n
at System.Web.OData.Query.Expressions.FilterBinder.Bind(QueryNode node) in c:\\WebApi\\aspnetwebstack\\src\\System.Web.OData\\OData\\Query\\Expressions\\FilterBinder.cs:line 175\r\n
at System.Web.OData.Query.Expressions.FilterBinder.BindExpression(SingleValueNode expression, RangeVariable rangeVariable, Type elementType) in c:\\WebApi\\aspnetwebstack\\src\\System.Web.OData\\OData\\Query\\Expressions\\FilterBinder.cs:line 436\r\n
at System.Web.OData.Query.Expressions.FilterBinder.Bind(FilterClause filterClause, Type filterType, IEdmModel model, IAssembliesResolver assembliesResolver, ODataQuerySettings querySettings) in c:\\WebApi\\aspnetwebstack\\src\\System.Web.OData\\OData\\Query\\Expressions\\FilterBinder.cs:line 112\r\n
at System.Web.OData.Query.FilterQueryOption.ApplyTo(IQueryable query, ODataQuerySettings querySettings, IAssembliesResolver assembliesResolver) in c:\\WebApi\\aspnetwebstack\\src\\System.Web.OData\\OData\\Query\\FilterQueryOption.cs:line 131\r\n
at System.Web.OData.Query.ODataQueryOptions.ApplyTo(IQueryable query, ODataQuerySettings querySettings) in c:\\WebApi\\aspnetwebstack\\src\\System.Web.OData\\OData\\Query\\ODataQueryOptions.cs:line 263\r\n
at System.Web.Http.QueryableAttribute.ApplyQuery(IQueryable queryable, ODataQueryOptions queryOptions) in c:\\WebApi\\aspnetwebstack\\src\\System.Web.OData\\QueryableAttribute.cs:line 462\r\n
at System.Web.Http.QueryableAttribute.ExecuteQuery(Object response, HttpRequestMessage request, HttpActionDescriptor actionDescriptor) in c:\\WebApi\\aspnetwebstack\\src\\System.Web.OData\\QueryableAttribute.cs:line 525\r\n
at System.Web.Http.QueryableAttribute.OnActionExecuted(HttpActionExecutedContext actionExecutedContext) in c:\\WebApi\\aspnetwebstack\\src\\System.Web.OData\\QueryableAttribute.cs:line 378\r\n
at System.Web.Http.Filters.ActionFilterAttribute.OnActionExecutedAsync(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken) in c:\\WebApi\\aspnetwebstack\\src\\System.Web.Http\\Filters\\ActionFilterAttribute.cs:line 44\r\n--- End of stack trace from previous location where exception was thrown ---\r\n
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext() in c:\\WebApi\\aspnetwebstack\\src\\System.Web.Http\\Filters\\ActionFilterAttribute.cs:line 122\r\n--- End of stack trace from previous location where exception was thrown ---\r\n
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n
at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext() in c:\\WebApi\\aspnetwebstack\\src\\System.Web.Http\\Filters\\ActionFilterAttribute.cs:line 78\r\n--- End of stack trace from previous location where exception was thrown ---\r\n
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n
at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext() in c:\\WebApi\\aspnetwebstack\\src\\System.Web.Http\\Controllers\\ActionFilterResult.cs:line 46\r\n--- End of stack trace from previous location where exception was thrown ---\r\n
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n
at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__0.MoveNext() in c:\\WebApi\\aspnetwebstack\\src\\System.Web.Http\\Dispatcher\\HttpControllerDispatcher.cs:line 112"
}
}
}

Comments: ODL V4 is not support bound and unbound functions in query option now. So, postpone it to vNext.

Viewing all articles
Browse latest Browse all 7215

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>