Automapper expression must resolve to top-level member

.net, automapper, automapper-2

Solution

You are using :

 Mapper.CreateMap<Source, Destination>()
 .ForMember( dest => dest.OutputData.Cars, 
             input => input.MapFrom(i => i.Cars)); 

This won't work because you are using 2 level in the dest lambda.

With Automapper, you can only map to 1 level. To fix the problem you need to use a single level :

 Mapper.CreateMap<Source, Destination>()
 .ForMember( dest => dest.OutputData, 
             input => input.MapFrom(i => new OutputData{Cars=i.Cars})); 

This way, you can set your cars to the destination.

Problem

I am using automapper to map source and destination objects. While I map them I get the below error. Expression must resolve to top-level member. Parameter name: lambdaExpression I am not able resolve the issue. My source and destination objects are: ``` public partial class Source { private Car[] cars; public Car[] Cars { get { return this.cars; } set { this.cars = value; } } } public partial class Destination { private OutputData output; public OutputData Output { get { return this.output; } set { this.output= value; } } } public class OutputData { private List<Cars> cars; public Car[] Cars { get { return this.cars; } set { this.cars = value; } } } ``` I have to map `Source.Cars` with `Destination.OutputData.Cars` object. Could you please help me in this?

Original source

Related problems