#api #asp.net-web-api #odata
#API #asp.net-веб-api #odata
Вопрос:
Я пытаюсь расширить дочернюю сущность в сущности, но получаю следующую ошибку: 400 Неверный запрос
Параметр запроса ‘Expand’ не разрешен. Чтобы разрешить это, установите свойство ‘AllowedQueryOptions’ в QueryableAttribute или QueryValidationSettings.
Я установил [EnableQuery(AllowedQueryOptions = AllowedQueryOptions.All)]
это свойство, но безуспешно, а затем также выдал ту же ошибку.
Вот мой URI :
localhost/OData/Ticket?$expand=Location
Я также пытаюсь получить количество записей, но подсчет также не работает для меня.Вот мой URI для подсчета.
localhost/OData/Ticket?$count=true
Но здесь также я получаю ошибку 400 Bad request со следующим сообщением :
Параметр запроса ‘$count’ не поддерживается.
Я много искал в Google и нашел некоторые связанные с этим проблемы, но они не работают для меня. Вот мой код:
-
Контроллер :
открытый класс ODataTicketController: ODataController
{
[ODataRoute] [EnableQuery(AllowedQueryOptions = AllowedQueryOptions.All)] public IQueryable<Ticket> Get() { return db.Tickets; }
}
-
Пожалуйста, помогите решить эту проблему.
Спасибо.
Ответ №1:
Наконец-то все запросы odata работают на моем контроллере. Просто нужен IQueryable для IHttpActionResult. Теперь он работает нормально. Вот обновленный контроллер.
public class ODataTicketController : ODataController
{
[EnableQuery]
public IHttpActionResult<Ticket> Get()
{
var result = db.Tickets;
return Ok(result);
}
}
Надеюсь, это кому-то поможет.
Спасибо.