Используя OData -> как преобразовать действие в контроллере, чтобы вернуть inlinecount из списка пользователей и их информации - PullRequest
0 голосов
/ 29 января 2020

Я следую этой статье:

https://docs.microsoft.com/en-us/aspnet/web-api/overview/odata-support-in-aspnet-web-api/supporting-odata-query-options

Я пытаюсь реализовать это $inlinecount=allpages в моем приложении. Я хочу, чтобы он отображал пользователей и счет для внешнего интерфейса, который будет использоваться в сетке.

Это мой Action в UsersController:

    [HttpGet]
    [EnableQuery]
    public IEnumerable<UserDto> Get()
    {
        var users = dbContext.Users.ToList();

        return users.Select(u =>
        {
            var dto = mapper.Map<UserDto>(u);
            var claims = dbContext.UserClaims.Where(c => c.UserId == u.Id);
            dto.FirstName = claims.FirstOrDefault(c => c.ClaimType == JwtClaimTypes.GivenName)?.ClaimValue;
            dto.FamilyName = claims.FirstOrDefault(c => c.ClaimType == JwtClaimTypes.FamilyName)?.ClaimValue;
            return dto;
        }).ToList();
    }

Это Похоже, это должно быть что-то вроде этого:

    [HttpGet]
    [EnableQuery]
    public IQueryable Get()
    {

        return dbContext.Users.AsQueryable();
    }

Это правильный способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...