Я хочу знать, является ли плохой дизайн использовать репозитории при преобразовании DTO в их аналог объекта домена.
Я создаю многоуровневое веб-приложение, которое имеет уровень репозитория, уровень обслуживания и ef4 для ORM. Уровень сервиса предоставляет DTO-версии объектов домена. Когда я получаю DTO от потребителя службы, служба будет использовать AutoMapper для преобразования DTO в объект домена. Теперь некоторые свойства членов в объекте домена необходимо будет загрузить из базы данных, например, у меня есть класс ниже -
Версия DTO:
public class LogonEventDto
{
public DateTime Time
{
get;
set;
}
public Guid UserId
{
get;
set;
}
}
Версия домена:
public class LogonEvent
{
public DateTime Time
{
get;
set;
}
public User User
{
get;
set;
}
}
Теперь, когда дело доходит до преобразования DTO в версию DO, мне нужно будет вызвать метод GetById () в UserRepository и установить свойство LogonEvent.User с результатом.
Просто чтобы вы знали, в настоящее время я вручную выполняю всю логику преобразования на уровне обслуживания.
Итак, как я спросил выше, является ли это плохим дизайнерским решением, и если да, то почему?