有上LosTechies regarding AutoMapper(an argument for/against 2-way mapping).DTO /命令模式问题
其实,这引起了我的注意一个非常有趣的讨论,因为我目前正在通过的问题。我正在制作一个装运件,为我的用户提供诸如费率/交付时间等信息。为了集中实际服务,我有一个WCF Web服务,它保留了任何域实体。
为了简化域模型我基本上有2类:
public class Shipment
{
public IList<Item> Items{get;set;}
}
public class Item
{
//some primitive properties
}
我也有被创建减轻通过线路负载的DTO的对应集。演示文稿(或多个部分,无论是否触及Web服务)都使用不知道域模型的DTO。
我的问题来到这里。要创建货件,该服务接受项目列表。创建出货的逻辑是全部隐藏在Web服务的后面。实质上,这意味着ItemDTO通过线路(客户端 - >服务器)传递,货件被创建,然后ShipmentDTO被传回(服务器 - >客户端)。现在,ShipmentDTO还有一个ItemDTO的子列表,它创建了双向映射场景。
这不仅仅是一个简单的CRUD操作,而且我对命令消息模式也很陌生,所以我很好奇社区如何解决这个问题。
您是否通过双向映射的双向DTO?
使用范例(表示层):
List<ItemDTO> list = new List<ItemDTO>();
//add items to list
ShipmentServiceClient client = new ShipmentServiceClient();
List<ShipmentDTO> shipments = client.GetShipments(list);
//shipments are now displayed to the user
//with respective costs and other useful data
ItemDTO实际上由客户端填充(或选择)。 ShipmentDTO是携带成本等的东西,由服务器填充。我的问题是由AutoMapper讨论引起的,使用单向映射似乎是最佳实践,因为总是有一种方法可以避免双向排序。 – 2009-11-09 20:20:37