将IDataReader映射到DTO时,AutoMapper中是否存在错误?

时间:2012-02-23 16:25:46

标签: c# automapper

以下是代码:

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

结果是DTO的公共属性都为null。阅读器中有一列名称和数据类型匹配。名称的大小并不精确,但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;
            }

它是如何进入构建器缓存的?神秘......帮助!

0 个答案:

没有答案