Пакетирование результатов сопоставленной коллекции для одновременной обработки - PullRequest
0 голосов
/ 15 февраля 2020

Учитывая упрощенное представление моих объектов:

public class User
{
    public string Id { get; set; }
}

public class UserDto
{
    public string Id { get; set; }
    public string Name {get; set; }
}

и некоторый метод, который возвращает коллекцию пользователей, например:

List<User> users = GetUserIds();
return users.Select(x => Mapper.Map<UserDto>(x));

Я хочу, чтобы для каждого User позвоните в отдельную службу поиска, чтобы узнать их имя. Поскольку моя служба поиска примет список идентификаторов пользователей, я бы хотел объединить их все в один вызов (один сетевой вызов, а не сотни). Это возможно с любой существующей функциональностью AutoMapper? Теоретически это было бы что-то вроде:

CreateMap<List<User>, List<UserDto>>...

с пользовательским преобразователем, но кажется, что было принято решение не разрешать отображение коллекций.

По сути, я просто надеялся реализовать что-то более элегантное, чем приведенное ниже, которое в действительности работает просто отлично:

List<User> users = GetUserIds();
var ids = new List<string>();

foreach (var user in users)
{
    ids.Add(user.Id);
}

List<UserDto> dtos = LookupNames(ids);
return dtos;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...