4

由于基于约定的自动映射,我有一些从域对象映射的 DTO,即地址字段被展平为 DTO。

这适用于域 - > 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;}
}

编辑

我知道全局配置“可识别的前缀”。我宁愿为特定的地图设置强制性前缀(不是“公认的”)。

4

1 回答 1

0

看看我对以下问题的回答: AutoMapper is not Recognizing profile-specific prefixes

希望这可以帮助!

于 2014-02-11T17:46:01.737 回答