【发布时间】:2012-03-05 15:14:11
【问题描述】:
我正在使用接收表示订单的平面 DTO 的 Web 服务,我必须将订单的业务表示转换为此平面表示。
这是对象-
DTO:
业务对象:
现在的问题是如何转换我的Order 实体?
我可以想到两种可能的解决方案:
让
Order知道如何将自己表示为 DTO:OrderDTO dto = order.ToDto();
但这具有业务实体知道数据表示的明显缺点。-
由某种转换器完成此操作:
OrderDTO dto = Convertor.Convert(order);。
但转换器代码必须如下所示:如果(订单为 OnlineOrder)
{
dto.Email = ((OnlineOrder)order).Email;
} 当然,这很糟糕。
有什么建议吗? automapper 可以在这里帮忙吗(我不是很熟悉)?
【问题讨论】: