2013-02-13 2 views
0

Я создаю приложение WebApi, используя MVC 4, который должен поддерживать oData.Метод не найден: 'Int32 Microsoft.Data.OData.Query.SemanticAst.QueryNode.get_Kind()'

Я установил пакет Microsoft.AspNet.WebApi.OData (Install-Package Microsoft.AspNet.WebApi.OData -Pre) в соответствии с рекомендациями, но при фильтрации [например:/api/cars? $ Filter = startswith (Name, 'F')] Я получаю исключение:

{"Message":"An error has occurred.","ExceptionMessage":"Method not found: 'Int32 Microsoft.Data.OData.Query.SemanticAst.QueryNode.get_Kind()'.","ExceptionType":"System.MissingMethodException","StackTrace":" at System.Web.Http.OData.Query.Validators.FilterQueryValidator.ValidateSingleValueNode(SingleValueNode node, ODataValidationSettings settings)\r\n at System.Web.Http.OData.Query.Validators.FilterQueryValidator.ValidateQueryNode(QueryNode node, ODataValidationSettings settings)\r\n at System.Web.Http.OData.Query.Validators.FilterQueryValidator.Validate(FilterQueryOption filterQueryOption, ODataValidationSettings settings)\r\n at System.Web.Http.OData.Query.FilterQueryOption.Validate(ODataValidationSettings validationSettings)\r\n at System.Web.Http.OData.Query.Validators.ODataQueryValidator.Validate(ODataQueryOptions options, ODataValidationSettings validationSettings)\r\n at System.Web.Http.OData.Query.ODataQueryOptions.Validate(ODataValidationSettings validationSettings)\r\n at System.Web.Http.QueryableAttribute.ValidateQuery(HttpRequestMessage request, ODataQueryOptions queryOptions)\r\n at System.Web.Http.QueryableAttribute.ExecuteQuery(IEnumerable query, HttpRequestMessage request, HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)\r\n at System.Web.Http.QueryableAttribute.OnActionExecuted(HttpActionExecutedContext actionExecutedContext)\r\n at System.Web.Http.Filters.ActionFilterAttribute.CallOnActionExecuted(HttpActionContext actionContext, HttpResponseMessage response, Exception exception)\r\n at System.Web.Http.Filters.ActionFilterAttribute.<>c__DisplayClass2.<System.Web.Http.Filters.IActionFilter.ExecuteActionFilterAsync>b__0(HttpResponseMessage response)\r\n at System.Threading.Tasks.TaskHelpersExtensions.<>c__DisplayClass41`2.<Then>b__40(Task`1 t)\r\n at System.Threading.Tasks.TaskHelpersExtensions.ThenImpl[TTask,TOuterResult](TTask task, Func`2 continuation, CancellationToken cancellationToken, Boolean runSynchronously)"} 

Что мне не хватает?

ответ

1

Существует двоичная несовместимость с версией базовой библиотеки OData, которая вызвала эту проблему. Я настоятельно рекомендую использовать наши ночные сборки. Просто используйте эту команду вместо этого в вашем пакете менеджер консоли:

Install-Package Microsoft.AspNet.WebApi.OData -Source http://www.myget.org/F/aspnetwebstacknightly/ -Pre 

Это также будет вам версию Web API OData поддержки, что гораздо ближе к конечным частям выпуска.

+0

Спасибо за ваш ответ, он решил проблему! –

Смежные вопросы