AutoMapper如何从ObjectId映射嵌套对象

Ray*_*air 7 automapper

我正在尝试将ReferralContract.AssessmentId属性映射到Referral.Assessment.Id以下代码有效,但我确信有更清洁的方法....请告诉我这是如此;-)

// Destination classes
public class Referral
{
    public Referral()
    {
        Assessment = new Assessment();
    }

    public int Id { get; set; }
    public Assessment Assessment { get; set; }
}

public class Assessment
{
    public int Id { get; set; }
}

// Source Class
public class ReferralContract
{
    public int Id { get; set; }
    public int AssessmentId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用的Automapper映射是

Mapper.CreateMap<ReferralContract, Referral>()
      .ForMember(x => x.Assessment,
          opt => opt.MapFrom(scr => new Assessment { Id = scr.AssessmentId }));
Run Code Online (Sandbox Code Playgroud)

Jim*_*ard 3

目前,这是最干净的方法。AutoMapper 的设计并未针对这些反向映射场景进行优化,但这是我正在为未来版本考虑的内容。