0
私はPITAレガシーDBモデルを持っています。ここでは、関連する部分があるAutoMapperで条件付きで2つのソースから目的地にマップする方法
class SalesOrder
{
public Recipient OrderBy {get;set;}
public Recipient BillTo {get;set;}
public List<SalesOrderLine> Lines {get;set;}
}
class SalesOrderLine
{
public Recipient ShipTo {get;set;}
public Address ShipToAddress {get;set;}
}
class Recipient
{
public Address DefaultAddress {get;set;}
}
Now comes the fun part.
class RecipientDTO {
public string Name {get;set;}
public string Address1 {get;set;}
public string Address2 {get;set;}
...
}
私は、これは、投影が選ばれた列を発することを確認するために、私は自動マッパーでマッピング設定を書くにはどうすればよいこの
new OrderDTO {
OrderBy = new RecipientDTO {
Name = OrderBy.Name,
Address1 = OrderBy.DefaultAddress.Addr1,
....
}
BillTo = new RecipientDTO {
Name = BillTo.Name,
Address1 = BilLTo.DefaultAddress.Addr1,
....
}
Lines = Lines.Select (l => new SalesOrderLineDTO {
ShipTo = new RecipientDTO {
Name = ShipTo.Name,
Address1 = l.ShipToAddress.Addr1, //NOTE. THIS IS NOT USING DEFAULT ADDRESS
....
}
})
}
ようにする必要があるOrderDTOを持っています。私がCustomResolverを使用する場合、投影はSQLを出さず、アドレスにアクセスするたびにDBに移動します。ムッソは悲しい!