Repro code:<br /> <br />public class BlahController : ApiController<br /> {<br /> [Queryable]<br /> public IQueryable<User> Get()<br /> {<br /> return new List<User>()<br /> {<br /> new User() { FirstName = "A", LastName = "AL", Age = 10 },<br /> new User() { FirstName = "B", LastName = "BL", Age = 50 },<br /> new User() { FirstName = "C", LastName = "CL", Age = 25 },<br /> }.AsQueryable();<br /> }<br /> }<br /><br /> public class Address<br /> {<br /> public string StreetName { get; set; }<br /> }<br /><br /> [DataContract]<br /> public class User<br /> {<br /> [DataMember]<br /> public string FirstName { get; set; }<br /> [DataMember]<br /> public string LastName { get; set; }<br /><br /> public int Age { get; set; }<br /><br /> [DataMember]<br /> public Address Address { get; set; }<br /> }<br /><br />Test request:<br />http://localhost:1592/api/Blah?$filter=Address+ne+null<br /><br />Expected:<br />Returns records which has Address property not equal to null.<br /><br />Actual:<br />Report 500 error<br /><Error><Message>An error has occurred.</Message><ExceptionMessage>The method or operation is not implemented.</ExceptionMessage><ExceptionType>System.NotImplementedException</ExceptionType><StackTrace> at Microsoft.Data.OData.Query.MetadataBinder.BindPropertyAccess(PropertyAccessQueryToken propertyAccessToken)<br /> at Microsoft.Data.OData.Query.MetadataBinder.Bind(QueryToken token)<br /> at Microsoft.Data.OData.Query.MetadataBinder.BindBinaryOperator(BinaryOperatorQueryToken binaryOperatorToken)<br /> at Microsoft.Data.OData.Query.MetadataBinder.Bind(QueryToken token)<br /> at Microsoft.Data.OData.Query.MetadataBinder.ProcessFilter(QueryNode query, QueryToken filter)<br /> at Microsoft.Data.OData.Query.MetadataBinder.BindTree(SyntacticTree syntax)<br /> at Microsoft.Data.OData.Query.MetadataBinder.BindQuery(SyntacticTree syntax)<br /> at Microsoft.Data.OData.Query.SemanticTree.ParseUri(Uri queryUri, Uri serviceBaseUri, IEdmModel model, Int32 maxDepth)<br /> at Microsoft.Data.OData.Query.SemanticTree.ParseUri(Uri queryUri, Uri serviceBaseUri, IEdmModel model)<br /> at System.Web.Http.OData.Query.FilterQueryOption.get_QueryNode() in C:\dd\DevDiv\Offcycle\WPT\WebStackRuntime\runtime\src\System.Web.Http.OData\OData\Query\FilterQueryOption.cs:line 68<br /> at System.Web.Http.OData.Query.FilterQueryOption.ApplyTo(IQueryable query, Boolean handleNullPropagation, IAssembliesResolver assembliesResolver) in C:\dd\DevDiv\Offcycle\WPT\WebStackRuntime\runtime\src\System.Web.Http.OData\OData\Query\FilterQueryOption.cs:line 100<br /> at System.Web.Http.OData.Query.ODataQueryOptions.ApplyTo(IQueryable query, Boolean handleNullPropagation, Boolean canUseDefaultOrderBy) in C:\dd\DevDiv\Offcycle\WPT\WebStackRuntime\runtime\src\System.Web.Http.OData\OData\Query\ODataQueryOptions.cs:line 213<br /> at System.Web.Http.OData.Query.ODataQueryOptions.ApplyTo(IQueryable query, Boolean handleNullPropagation) in C:\dd\DevDiv\Offcycle\WPT\WebStackRuntime\runtime\src\System.Web.Http.OData\OData\Query\ODataQueryOptions.cs:line 191<br /> at System.Web.Http.OData.Query.ODataQueryOptions.ApplyTo(IQueryable query) in C:\dd\DevDiv\Offcycle\WPT\WebStackRuntime\runtime\src\System.Web.Http.OData\OData\Query\ODataQueryOptions.cs:line 180<br /> at System.Web.Http.QueryableAttribute.OnActionExecuted(HttpActionExecutedContext actionExecutedContext) in C:\dd\DevDiv\Offcycle\WPT\WebStackRuntime\runtime\src\System.Web.Http.OData\QueryableAttribute.cs:line 168<br /> at System.Web.Http.Filters.ActionFilterAttribute.CallOnActionExecuted(HttpActionContext actionContext, HttpResponseMessage response, Exception exception)<br /> at System.Web.Http.Filters.ActionFilterAttribute.<>c__DisplayClass2.<System.Web.Http.Filters.IActionFilter.ExecuteActionFilterAsync>b__0(HttpResponseMessage response)<br /> at System.Threading.Tasks.TaskHelpersExtensions.<>c__DisplayClass41`2.<Then>b__40(Task`1 t)<br /> at System.Threading.Tasks.TaskHelpersExtensions.ThenImpl[TTask,TOuterResult](TTask task, Func`2 continuation, CancellationToken cancellationToken, Boolean runSynchronously)</StackTrace></Error><br />
Comments: Hongye, can you verify if this is fixed in the new ODataParser?
Comments: Hongye, can you verify if this is fixed in the new ODataParser?