Im создает решение WebAPI OData, которое обрабатывает объекты нетипизированных объектов, как описано в this excellent post. Как этот пост, я определяю мой EdmModel заранее, и использовать метод MapODataRoute и передать в модели использования:MapODataRoute и ODataQueryOptions
config.Routes.MapODataRoute("odata", "odata", ModelBuilder.GetEdmModel());
Однако, это не похоже на работу с параметром ODataQueryOptions в моих методах:
Get(ODataQueryOptions query)
{
}
Приведенная ниже ошибка: Данная модель не содержит тип 'System.Web.Http.OData.IEdmEntityObject'. Имя параметра: elementClrType
Есть ли способ получить ODataQueryOptions для работы с MapODataRoute?
Привет Raghuram, спасибо за Ваш ответ, то есть именно то, что ив делать, увидеть код в моем ответ. Он выдает ошибку с $ select и $ expand, хотя ... – stefjnl
В качестве примечания, похоже, что если вы это делаете, вам также не нужно определять возвращенную коллекцию как 'IQueryable'. Я сработал с ошибками сериализации, пока не вернулся к 'IEnumerable'. –
Обратите внимание, что для более поздних версий этот метод отмечен как устаревший. Используйте 'System.Web.Http.OData.Extensions.HttpRequestMessageExtensions.ODataProperties (запрос) .Path'. –