ソース オブジェクトと宛先オブジェクトをマップするために automapper を使用しています。マップ中に以下のエラーが発生します。
式は最上位メンバーに解決される必要があります。パラメータ名: lambdaExpression
問題を解決できません。
ソースオブジェクトと宛先オブジェクトは次のとおりです。
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; }
}
}
Source.Cars
オブジェクトにマッピングする必要がありますDestination.OutputData.Cars
。これについて助けていただけませんか?
ベストアンサー1
使用しているもの:
Mapper.CreateMap<Source, Destination>()
.ForMember( dest => dest.OutputData.Cars,
input => input.MapFrom(i => i.Cars));
dest ラムダで 2 レベルを使用しているため、これは機能しません。
Automapper では、1 つのレベルにしかマップできません。この問題を解決するには、単一のレベルを使用する必要があります。
Mapper.CreateMap<Source, Destination>()
.ForMember( dest => dest.OutputData,
input => input.MapFrom(i => new OutputData{Cars=i.Cars}));
こうすることで、車を目的地まで向かわせることができます。