在MVC應用程序中做同樣的實體類型的副本,但是希望忽略複製主鍵(對現有實體進行更新)。但在下面的地圖中將Id列設置爲忽略不起作用,並且Id被覆蓋。AutoMapper ForMember忽略不工作
cfg.CreateMap<VendorContact, VendorContact>()
.ForMember(dest => dest.Id, option => option.Ignore())
.ForMember(dest => dest.CreatedById, option => option.Ignore())
.ForMember(dest => dest.CreatedOn, option => option.Ignore())
;
執行映射:
existingStratusVendorContact = Mapper.Map<VendorContact>(vendorContact);
鋸this other answer,但現在看來,我這樣做了。
UPDATE:
據透露,我創造我的地圖在Global.asax像這樣:
Mapper.Initialize(cfg =>
{
cfg.CreateMap<VendorContact, VendorContact>()
.ForMember(dest => dest.Id, option => option.Ignore())
.ForMember(dest => dest.CreatedById, option => option.Ignore())
.ForMember(dest => dest.CreatedOn, option => option.Ignore())
;
});
'existingStratusVendorContact'是一個現有的對象,你想替換除'Id','CreatedById','CreatedOn'之外的屬性嗎?或者用這個屬性的默認值創建一個新的? –
是的,前者。更新除這3個屬性以外的現有對象。 –