【发布时间】:2012-09-25 08:48:48
【问题描述】:
有两种类型:
1) DTO 类型:
[DataContract]
public sealed class OrderDetailDto
{
[DataMember]
public Guid MergeId { get; set; }
[DataMember]
public int Id { get; set; }
[DataMember]
public string PostionName { get; set; }
[DataMember]
public decimal Quantity { get; set; }
[DataMember]
public byte[] Version { get; set; }
}
2) 对应的域类型:
public sealed class OrderDetail
{
public Guid MergeId { get; set; }
public int Id { get; set; }
public string PostionName { get; set; }
public decimal Quantity { get; set; }
public byte[] Version { get; set; }
}
还有两个集合:Collection<OrderDetail> 和 Collection<OrderDetailDto>。
Collection<OrderDetailDto> 有数据更改,这是在某处进行的。现在我想使用 Automapper 将这些更改应用于Collection<OrderDetail>。
为简单起见,让我们考虑一下,这些集合中的 items count 是相等的,但 items 的顺序 可能不同。
为了正确映射集合项,我想使用MergeId 属性。我需要这样的东西:
Mapper.CreateMap<Collection<OrderDetailDto>, Collection<OrderDetail>>()
.MappingExpression((dto, do) => dto.MergeId == do.MergeId);
这可能与 Automapper 相关吗?
【问题讨论】:
标签: c# automapper