How to use AutoMapper .ForMember?

Viewed 119905

I am trying to set up AutoMapper to convert from Entity to DTO. I know I'm supposed to be using .ForMember() after Mapper.CreateMap<Entity, DTO>() to set up custom mappings, but this doesn't seem to be an available method.

Edit for clarification: I am not looking for a link to the documentation, which I have read, or an explanation of the basic syntax. I am using the correct syntax as described in answers and the documentation, for example:

Mapper.CreateMap<EFAddress, Address>()
      .ForMember(dest => dest.Code, opt => opt.MapFrom(src => src.Name));

If I have an invalid type name within CreateMap<> I can see "ForMember" as a valid method, mousing over shows the method signature as I would normally expect. But as soon as I give it two valid types, ForMember says it cannot resolve the symbol, as if the method is not available.

Is there some kind of constraint on the generic classes which I am not meeting?

Thanks

6 Answers

This use as well as:

  CreateMap<Azmoon, AzmoonViewModel>()
            .ForMember(d => d.CreatorUserName, m => m.MapFrom(s => 
 s.CreatedBy.UserName))
            .ForMember(d => d.LastModifierUserName, m => m.MapFrom(s => 
s.ModifiedBy.UserName)).IgnoreAllNonExisting();
 CreateMap<ClassRoom, ClassRoomDto>()
            .ForMember(opt => opt.StudentNumber, conf => conf.MapFrom(x => x.Student == null ? (long?)null : x.Student.StudentNumber))
            .ForMember(opt => opt.StudentFullName, conf => conf.MapFrom(x => x.Student == null ? null : x.Student.Name + " " + x.Student.Surname))
            .ReverseMap()
            .ForMember(opt => opt.Student, conf => conf.Ignore());
Related