Есть ли ошибка в AutoMapper при отображении IDataReader в DTO? - PullRequest
2 голосов
/ 23 февраля 2012

Вот код:

Mapper.CreateMap<IDataReader, IEnumerable<Order>>();
orders = Mapper.Map<IDataReader, IEnumerable<Order>>(reader)

В результате все открытые свойства DTO равны нулю.В считывателе есть столбец с именем и соответствием типа данных.Псевдоним имени не является точным, но в AutoMapper есть код для его обработки.

var propertyInfo = destinationType.GetProperty(dataRecord.GetName(i), BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.Instance);

К сожалению, кажется, что AutoMapper никогда не попадает в эту строку кода.Он останавливается раньше, находя кэшированную копию компоновщика из кэша компоновщика.

            Build builder;
            BuilderKey builderKey = new BuilderKey(destinationType, dataRecord);
            if (_builderCache.TryGetValue(builderKey, out builder))
            {
                return builder;
            }

Как он попал в кэш компоновщика?Тайны ... Помогите!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...