gpt4 book ai didi

c# - 除了 AutoMapper 中的 ForMember 方法之外,是否还有其他自定义映射方法?

转载 作者:太空宇宙 更新时间:2023-11-03 17:20:01 26 4
gpt4 key购买 nike

我有复杂的模型 (SyncBillToPartyMaster),我想自定义映射到我的简单 POCO 类中。

Mapper.CreateMap<SyncBillToPartyMaster, CustomerAddress>()
.ForMember(d => d.CustomerId, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.CustomerParty.PartyIDs.ID.Value))
.ForMember(d => d.CustomerAddressId, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.PartyIDs.ID.Value))
.ForMember(d => d.City, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.Location.Address.CityName))
.ForMember(d => d.State, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.Location.Address.CountrySubDivisionCode.Value))
.ForMember(d => d.Country, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.Location.Address.CountryCode.Value))
.ForMember(d => d.Zip, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.Location.Address.PostalCode.Value))
.ForMember(d => d.Address1, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.Location.Address.AddressLine[0].Value))
.ForMember(d => d.Address2, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.Location.Address.AddressLine[1].Value))
.ForMember(d => d.Address3, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.Location.Address.AddressLine[2].Value))
.ForMember(d => d.Phone1, o => o.MapFrom(src => GetContact(src.DataArea.BillToPartyMaster, "phone")))
.ForMember(d => d.Fax1, o => o.MapFrom(src => GetContact(src.DataArea.BillToPartyMaster, "fax")))
.ForMember(d => d.MaintenanceCustomerId, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.LastModificationPerson.IDs[0].Value))
.ForMember(d => d.MaintenanceUser, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.LastModificationPerson.Name.Value))
.ForMember(d => d.MaintenanceDate, o => o.MapFrom(src => DateTime.UtcNow));

如您所见,使用 AutoMapper 的 ForMember 方法将我的复杂模型 SyncBillToPartyMaster 映射到 CustomerAddress 非常繁琐。除了使用 ForMember 方法之外,还有其他方法可以使它变得优雅吗?

顺便说一句,除了 SyncBillToPartyMaster 之外,我还有更多、更复杂的模型。如果有另一种方法可以实现我的目标,我不想以同样的方式做它们。

最佳答案

不要使用 AutoMapper,这里没有匹配的东西。与仅使用"new"运算符并自行设置所有内容相比,您并没有节省任何东西。

关于c# - 除了 AutoMapper 中的 ForMember 方法之外,是否还有其他自定义映射方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31734618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com