我有一件奇怪的事情发生在automapper上。AutoMapper IEnumerable映射错误
难道有人有线索,为什么这个代码是为InstitutionsImplantations场返回值:
var result1 = new List<DataModel.Implantations>();
foreach (var c in collection)
{
DataModel.Implantations i = Mapper.Map<DataModel.Implantations>(c);
result1.Add(i);
}
var item1 = result1.Where(x => x.Nom == "Valdor").FirstOrDefault();
Console.WriteLine(item1.InstitutionsImplantations);
虽然这一个(在相同的集合),用于InstitutionsImplantations返回null:
var result2 = Mapper.Map<IEnumerable<DataModel.Implantations>>(collection);
var item2 = result2.Where(x => x.Nom == "Valdor").FirstOrDefault();
Console.WriteLine(item2.InstitutionsImplantations);
事实: autommaper在IEnumerable上完成的映射对于列表中的+/- 300个项目是正确的,然后是某个项目集合具有“严重”映射的InstitutionsImplantations属性。
InstitutionsImplantations属性是来自EF结果的对象“代理”。
你知道为什么会发生这种情况吗?
Tx you!
从来没有见过类似的东西,但使用AutoMapper的“正常”方法是'collection.Select(c => Mapper.Map(c))''所以你不需要臃肿的'IEnumerable'映射。这种形式基本上与您的第一个片段相同。不回答当然的问题。知道这是否是一个bug会很有趣。 –