Automapper通过函数反向映射

问题描述 投票:0回答:2

为简化起见,在源Device.cs中,我具有:

using Assisticant.Collections;

(...)

private ObservableList<Result> _results = new ObservableList<Result>();

public IEnumerable<Result> Results
{
   get { return _results; }
}

public void AddResult(Result result)
{
    _results.Add(result);
}

目标DeviceDto.cs为:

public List<Result> Results { get; set; }

我应该如何配置Automapper,以实现从源到目标的简单直接映射,并同时通过.AddResult(result)函数对每个元素进行反向映射?(由于使用的库目的,我必须以这种方式添加元素)

我应该添加到:

var config = new MapperConfiguration(cfg =>
{
    cfg.CreateMap<Device, DeviceDto>().ReverseMap();
});

_mapper = new Mapper(config);
c# automapper
2个回答
0
投票

不使用ReverseMap(),而是显式配置从DeviceDtoDevice的映射。

因为Device.Results仅定义了一个吸气剂,所以它会在映射步骤中被AutoMapper忽略。如果需要同时访问源和目标,请使用AfterMap方法。


0
投票

您可以使用AfterMap

© www.soinside.com 2019 - 2024. All rights reserved.