3
由於基於約定的自動映射,我有一些從域對象映射的DTO,即地址字段被平鋪到DTO。Automapper不帶前綴
這適用於域 - > DTO轉換,但另一種方式是我必須手動「解除」地址。
我不知道是否有對「前綴」映射配置的可能性,所以我可以做類似
Mapper.CreateMap<PersonDTO, Address>().WithPrefix("Address");
...
Mapper.CreateMap<PersonDTO, Person>()
.ForMember(d => d.Address, opt => opt.MapFrom(src => Mapper.Map<Address>(src)))
否則我必須手動映射每個地址字段,這成爲更復雜的對象問題。
我的域對象和DTO
class Person
{
public string FirstName {get;set;}
public string LastName {get;set;}
public Address Address {get;set;}
}
class Address
{
public string Street {get;set;}
public string PostCode {get;set;}
}
及以下DTO:
class PersonDTO
{
public string FirstName {get;set;}
public string LastName {get;set;}
public string AddressStreet {get;set;}
public string AddressPostCode {get;set;}
}
編輯
我知道全局配置的 「公認的前綴」。我寧願爲特定的地圖設置強制性前綴(不是「公認的」之一)。