我正在使用自动Map器来Map源对象和目标对象。当我Map它们时,我得到下面的错误。
表达式必须解析为顶级成员。参数名:λ表达式
我无法解决这个问题。
我的源对象和目标对象是:
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; }
}
}
我需要用Destination.OutputData.Cars
对象MapSource.Cars
,你能帮我一下吗?
6条答案
按热度按时间rhfm7lfc1#
您正在使用:
这将不起作用,因为您在dest lambda中使用了2 level。
使用自动Map器,您只能Map到1个级别。要解决此问题,您需要使用单个级别:
这样,您就可以设置您的汽车到目的地。
7lrncoxx2#
1.定义
Source
和OutputData
之间的Map。1.更新配置以将
Destination.Output
Map到OutputData
。t9eec4r03#
你可以这样做:
我就是这么做的- )
cigdeys34#
这对我很有效:
yxyvkwin5#
ForPath适用于这种情况。
pxiryf3j6#
allrameest对这个问题给出的正确答案应该会有所帮助:AutoMapper - Deep level mapping
这就是你所需要的:
使用Map器时,请用途:
其中destinationObj是目标的示例,sourceObj是源的示例。
注意:此时您应该尝试停止使用Mapper.CreateMap,它已经过时,很快将不受支持。