Поддерживает ли автомаппер с одатами несколько orderby /? $ Orderby = Field1, Field2 - PullRequest
0 голосов
/ 28 января 2020

. net core 2.2, automapper 9.0.0, efcore 2.2.6, odata 7.2.3. Для использования автоматической карты в контексте я использую AutoMapper.AspNetCore.OData.EFCore "Version =" 1.0. Пакет 0 "

public class RolesController : ODataController
{
    private readonly ApplicationDbContext _context;
    private readonly IMapper _mapper;

    public RolesController(ApplicationDbContext context, IMapper mapper)
    {
        _context = context ?? throw new ArgumentNullException(nameof(context));
        _mapper = mapper ?? throw new ArgumentNullException(nameof(mapper));
    }

    [EnableQuery]
    public async Task<IActionResult> Get(ODataQueryOptions<RoleGridRow> options)
    {
        return Ok(await _context.Roles.AsNoTracking().GetQueryAsync(_mapper, options));
    }
}


public RolesProfile()
    {
        CreateMap<ApplicationRole, RoleGridRow>()
            .ForMember(dest => dest.Users, opt => opt.MapFrom(src => src.UserRoles ));
        CreateMap<ApplicationUserRole, User>()
            .ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.UserId))
            .ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.User.Name));
    }

ApplicationRole / User / UserRole наследуются от IdentityRole / User / UserRole Все настройки навигации настроены правильно.

Мне нужно следующее DTO

 public class RoleGridRow
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public bool IsActive { get; set; }
    public List<User> Users { get; set; }
}

С OData все вызовы работают: заказ, расширение до пользователей, выбор, ...

Для заказа, в тот момент, когда я пытаюсь упорядочить по нескольким полям, например: "https://localhost: 5001 / odata / role ? $ orderby = IsActive, Name ", я получаю следующее исключение:

No generic method 'ThenBy' on type 'System.Linq.Queryable' is compatible with the supplied type arguments and arguments. No type arguments should be provided if the method is non-generic.

Поддерживает ли autopper это вообще? Или я что-то пропускаю?

1 Ответ

1 голос
/ 31 января 2020

В пакете была ошибка. Нашел, исправил. Я создам пиар. Нашел несколько других ошибок, касающихся подкачки

Сообщается, создаст PR и для этого. На данный момент необходимо удалить EnableQuery.

...