这是关于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),但我怀疑这样做是否可行。
所以我在如何正确执行方面有些困惑。
您可以尝试这个
this.CreateMap<Entity, Model>()
.ReverseMap()
.ForMember(dst => dst.RowVersion, opt => opt.MapFrom(src => src.RowVersion.Select(x => x).ToArray()))