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
Try the following syntax:
Mapper
.CreateMap<Entity, EntityDto>()
.ForMember(
dest => dest.SomeDestinationProperty,
opt => opt.MapFrom(src => src.SomeSourceProperty)
);
or if the source and destination properties have the same names simply:
Mapper.CreateMap<Entity, EntityDto>();
Please checkout the relevant sections of the documentation for more details and other mapping scenarios.