【发布时间】:2011-01-28 09:49:10
【问题描述】:
我想知道在将 DTO 转换为对应的域对象时使用存储库是否是一个糟糕的设计。
我正在构建一个 n 层 Web 应用程序,它具有存储库层和服务层以及用于 ORM 的 ef4。服务层公开域对象的 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 版本时,我需要调用 UserRepository 上的 GetById() 方法并使用结果设置 LogonEvent.User 属性。
只是告诉你,我目前正在手动完成服务层中的所有转换逻辑。
所以正如我上面所问的,这是一个糟糕的设计决定吗?如果是,为什么?
【问题讨论】:
标签: c# repository automapper dto