次の 2 つのタイプがあります。
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; }
}
および 2 つのコレクション:Collection<OrderDetail>
およびCollection<OrderDetailDto>
.
Collection<OrderDetailDto>
どこかで行われたデータ変更があります。Collection<OrderDetail>
Automapper を使用して、 これらの変更を に適用したいと思います。
簡単にするために、これらのコレクション内のアイテム数は同じであると考えてみましょう。ただし、アイテムの順序は異なる場合があります。
コレクション アイテムを正しくマップするには、MergeId
プロパティを使用します。私はこのようなものが必要です:
Mapper.CreateMap<Collection<OrderDetailDto>, Collection<OrderDetail>>()
.MappingExpression((dto, do) => dto.MergeId == do.MergeId);
これはAutomapperで行うことができますか?