从DataReaderMapping单元测试中,更改Establish_context方法(Mapper)。图线)
protected override void Establish_context()
{
Mapper.CreateMap<IDataRecord, DTOObject>()
.ForMember(dest => dest.Else, options => options.MapFrom(src => src.GetDateTime(src.GetOrdinal(FieldName.Something))));
_dataRecord = new DataBuilder().BuildDataRecord();
var result = new DTOObject();
Mapper.Map<IDataRecord, DTOObject>(_dataRecord, result);
_result = result;
}
我已经追踪到mpropertyvalues方法在DataReaderMapper.cs.
context.TypeMap.GetPropertyMaps()没有任何属性的属性映射,除了单元测试中在ForMember扩展中定义的'Else'。
我已经尝试使用ForAllMembers来"欺骗"属性映射来添加缺失的属性,但是没有_sourceValueResolvers用于这些属性映射。
建议如何解决?
DataReaderMapper中发出的IL。CreateBuilder总是创建一个新对象,而不是在ResolutionContext中使用DestinationValue。
pull request for AutoMapperhttps://github.com/AutoMapper/AutoMapper/pull/721/files