Automapper带前缀的展平操作

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;}
}

编辑

我知道全局配置中有“识别前缀”的设置。我更想为特定的地图设置强制前缀(而不是“识别出的前缀之一”)。

1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接