复制数组,而不是简单地在映射上分配引用

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

这是关于Automapper 9的。假设您有两个类,例如

public class Entity {
  public byte[] RowVersion { get; set; 
}
public class Model {
  public byte[] RowVersion { get; set; 
}
// mapping
CrateMap<Entity, Model>().ReverseMap();

[映射时,AutoMapper会简单地将数组的引用复制到目标。这对我有效,但仅当投影是从实体到模型的方向时才有效。当将Model映射回Entity时,我想改为按值复制数组。由于type converter是全局转换器,因此会产生附带影响,因此无法使用。 value converter也不起作用,因为您无法访问target属性,而只是返回字节数组的(新)实例。理想情况下,我将在CreateMap上使用类型转换器(不使用ReverseMap),但我怀疑这样做是否可行。

所以我在如何正确执行方面有些困惑。

c# automapper
1个回答
0
投票

您可以尝试这个

this.CreateMap<Entity, Model>()
                .ReverseMap()
                .ForMember(dst => dst.RowVersion, opt => opt.MapFrom(src => src.RowVersion.Select(x => x).ToArray()))
© www.soinside.com 2019 - 2024. All rights reserved.