Мне кажется, что в вашем случае у вас нет простого процесса отображения от DTO s до Entities , потому что в этом процессе есть логика приложения.Хранение изображений где-то и получение URL / пути к этому изображению является специфической логикой приложения, поэтому вам, вероятно, понадобится Служба .
Приложения обычно имеют какие-то задачи или операций , которые необходимо выполнить, и определение потока приложения.Одним из способов определения этого потока является использование Commands и присоединение DTO к этим Commands .
Например, допустим, у вас есть процесс регистрации, поэтому пользователь должен ввести некоторые данные, и вам необходимо создать учетную запись сущность.
В случае веб-приложения веб-интерфейс должен будет собирать информацию о пользователе, а также создавать и отправлять команду бэкэнду.В этом случае у вас будет RegisterUserCommand .Эта команда будет содержать свойство UserInfo DTO или иметь свойства для информации о пользователе.Например:
RegisterUserCommand {
string UserName
string FirstName;
string LastName;
Image Avatar;
}
Следующее, что вам нужно, это RegisterUserCommandService или ( RegisterUserCommandHandler в зависимости от вашего вкуса и используемой терминологии), которое будет обрабатывать / обрабатывать Команда .Вам также понадобится StorageProvider , который будет обслуживать операции провайдера для хранения и извлечения изображений (может быть в файловой системе, Amazon S3, Dropbox и т. Д.) И давать вам ссылку.Вот пример псевдокода
RegisterUserCommandService {
Process(RegisterUserCommand cmd) {
avatarLink = storageProvider.Store(cmd.Avatar);
account = new Account(cmd.UserName, ...., avatarLink);
accountRepository.Save(account);
}
Если вы расскажете мне больше о вашем приложении, я могу предоставить пример для вашего конкретного случая.
Вот некоторые ресурсы, которые вы можете проверить: