Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AutoMapper How to map nested object from an ObjectId

Tags:

automapper

I am trying to map the ReferralContract.AssessmentId property to Referral.Assessment.Id The below code works but I am sure that there is a cleaner way to do.... Please tell me this is so ;-)

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

The Automapper mapping I am using is

Mapper.CreateMap<ReferralContract, Referral>()
      .ForMember(x => x.Assessment,
          opt => opt.MapFrom(scr => new Assessment { Id = scr.AssessmentId }));
like image 648
RayMartinsHair Avatar asked Apr 14 '10 01:04

RayMartinsHair


1 Answers

For now, that's the cleanest way to go. AutoMapper's design is not optimized for these reverse-mapping scenarios, but that's something I'm looking at for future versions.

like image 151
Jimmy Bogard Avatar answered Sep 22 '22 23:09

Jimmy Bogard