我正在将我的项目从AutoMapper版本4.2.1更新为6,并且在新版本中,我遇到了意外行为。
类
class Opportunity : OpportunityLite
{
}
class OpportunityLite
{
public DealerOpportunityLite DealerOpportunity { get; set; }
}
class DealerOpportunity : DealerOpportunityLite
{
public new string BranchCode { get; set; }
}
class DealerOpportunityLite
{
public string BranchCode { get; set; }
}
映射器配置
AutoMapper.Mapper.Initialize(cfg =>
{
cfg.CreateMap<Opportunity, OpportunityLite>();
cfg.CreateMap<DealerOpportunity, DealerOpportunityLite>();
});
版本:4.2.1
如果我执行以下地图:
Opportunity oppLite = new Opportunity
{
DealerOpportunity = new DealerOpportunity
{
BranchCode = "00168"
}
};
var opp = AutoMapper.Mapper.Map<Opportunity, OpportunityLite>(oppLite);
“opp.DealerOpportunity.BranchCode”的属性值为: 00168
从版本5.0.2到6.2.2
在这些版本中,相同属性的值为: null
如何在不在映射配置中添加“ForMember”的情况下更新AutoMapper以获得4.2.1版的相同结果? 不幸的是,我有很多这种类模式的情况。