Автоматическое отображение пользовательских карт с IDataReader - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь сопоставить DataTable с DtoObject с помощью AutoMapper. Это прекрасно работает, только когда я пытаюсь добавить пользовательское сопоставление для определенного поля, оно не отображается.

с использованием пакетов nuget:

  • AutoMapper
  • AutoMapper.Data

Настройка (с использованием единицы):

container.RegisterInstance<IMapper>(new AutoMapperConfiguration().Configure().CreateMapper());

public class AutoMapperBootstrap : Profile
{
    public AutoMapperBootstrap()
    {
        CreateMap<IDataReader, DtoObject>()
            .ForMember(dest => dest.SomeField, opt => opt.MapFrom(src => src.GetDateTime(0)));
    }
}


public class AutoMapperConfiguration
{
    public MapperConfiguration Configure()
    {
        var config = new MapperConfiguration(cfg =>
        {
            cfg.AddDataReaderMapping();
            cfg.AddProfile<AutoMapperBootstrap>();
        });
        return config;
    }
}

Отображение:

private IEnumerable<DtoObject> DataTableReintegratieGegevensToIEnumerable(DataTable dt)
{
    return _mapper.Map<IDataReader, IEnumerable<DtoObject>>(dt.CreateDataReader());
}

Объект:

public class DtoObject
{
    public DateTime? SomeField { get; set; }
    ...
}

Все поля отображаются правильно, за исключением SomeField. Есть идеи?

...