Получение более одной записи для первичного ключа в OData - PullRequest
0 голосов
/ 09 октября 2019

Для приведенного ниже запроса я должен получить только одну запись, где первичный ключ Id = 1, но вместо этого я получаю список всех записей.

http://localhost:52484/Schools(1) 

Я использую Почтальон для запросов по ASP. net Web API с OData версии 4.

Код контроллера:

public class SchoolsController : ODataController
{
    private readonly ISchoolService _schoolService;
    public SchoolsController(ISchoolService schoolService)
    {
        _schoolService = schoolService;
    }

    [EnableQuery(PageSize = 10,MaxExpansionDepth= 12,MaxAnyAllExpressionDepth = 5)]
    public IQueryable<School> Get()
    {
        return _schoolService.Schools();
    }

    [HttpGet]
    [EnableQuery]
    public IQueryable<School> Schools()
    {
        return _schoolService.Schools();
    }
}

Есть идеи, почему я получаю все записи и как их получить?

1 Ответ

0 голосов
/ 09 октября 2019

Вы должны реализовать метод в вашем контроллере для этого:

[HttpGet]
public IActionResult GetByKey([FromODataUri]int key)
{
    var res = _schoolService.Schools().FirstOrDefault(s => s.Id == key);
    return res != null ? Ok(res) : (IActionResult)NotFound();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...