automapper 发生了一件奇怪的事情。
有人知道为什么此代码会返回 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);
事实: IEnumerable 上的 autommaper 完成的映射对于列表中的 +/- 前 300 个项目是正确的,然后,某些项目集合具有“糟糕”映射的 InstitutionsImplantations 属性。
InstitutionsImplantations 属性是来自 EF 结果的对象“代理”。
你知道为什么会这样吗?
给你!