我正在使用 AutoMapper 6。考虑以下类:
public class Source
{
public FlattenableClass Flattenable { get; set; }
public List<EmailAddress> EmailAddresses { get; set; }
}
public class Destination
{
public string FlattenableProp1 { get; set; }
public string FlattenableProp2 { get; set; }
public MappedEmailAddress EmailAddress1 { get; set; }
}
where有名为andFlattenableClass
的属性。如您所见,源有一个集合,但目标只需要第一个,因为虽然我们的数据库允许电子邮件地址的集合,但应用程序将支持一个。我相信我可以像这样安排这个映射:Prop1
Prop2
EmailAddress
Source
Destination
CreateMap<Source, Destination>()
.ForMember(d => d.EmailAddress1, opt => opt.ResolveUsing(s => s.EmailAddresses?.FirstOrDefault()));
但是,不出所料,如果我再调用ReverseMap()
它,它不知道如何映射EmailAddress1
回EmailAddresses
集合。有没有办法让它映射EmailAddress1
回一个EmailAddress
并将其添加到EmailAddresses
集合中?