当我们使用AutoMapper将包含嵌入对象的记录映射到记录时,我们需要手动配置AutoMapper以正确地映射嵌入对象。我们可以使用下面的代码解决这个问题:
在源代码中定义以下数据结构:
public class SourcePerson {
public string FirstName { get; set; }
public SourceAddress Address { get; set; }
}
public class SourceAddress {
public string Street { get; set; }
public string City { get; set; }
}
public class DestinationPerson {
public string FirstName { get; set; }
public string Street { get; set; }
public string City { get; set; }
}
在AutoMapper映射配置文件中添加以下代码:
Mapper.Initialize(cfg =>
{
cfg.CreateMap()
.ForMember(dest => dest.Street, opt => opt.MapFrom(src => src.Address.Street))
.ForMember(dest => dest.City, opt => opt.MapFrom(src => src.Address.City));
});
通过这种方式,我们可以手动地告诉AutoMapper如何映射嵌入对象并正确地将源数据转换为目标数据。