C# AutoMapper: 如何映射可空值类型 (Nullable<T>)
在使用AutoMapper映射对象时,如果值类型为null,可以使用Nullable<T>来表示可空类型,并将其设置为null。例如,如果SaveMaterialDto类中的某个属性为int类型,可以将其改为int?类型,然后将其设置为null。在映射时,如果源对象的该属性为null,则目标对象的对应属性也将被设置为null。
例如,以下代码演示了如何将SaveMaterialDto类中的Id属性映射到Material类中的Id属性,并处理Id属性为null的情况:
CreateMap<SaveMaterialDto, Material>().Ignore(x => x.Id).ForAllMembers(opt => opt.Condition((src, dest, sreMember, dMember) => sreMember != null));
在这个代码片段中,我们使用Ignore方法忽略了Id属性的映射,因为Id属性是可空类型,并且可能为null。然后,我们使用ForAllMembers方法对所有其他属性进行映射,并使用Condition方法来判断源对象的属性是否为null。如果源对象的属性为null,则目标对象的对应属性也将被设置为null。
通过使用Nullable<T>和Condition方法,我们可以轻松地处理值类型为null的情况,并确保在映射过程中不会出现异常。
原文地址: https://www.cveoy.top/t/topic/qlAh 著作权归作者所有。请勿转载和采集!