簡體   English   中英

僅當目標 object 在 Automapper 中沒有值時,如何 map

[英]how to map only if destination object doesn't have a value in Automapper

我有一個映射器,我需要執行條件映射,條件是,map 僅當目標屬性值為 null 時,才從源到目標的值。我該怎么做?

.ForMember(o => o.EmployeeId, opt => opt.MapFrom(u => u.EmployeeId))

僅當 EmployeeId 還沒有值時,我才想為它賦值。

IMemberConfigurationExpression .MapFrom()具有重載,該重載采用 IDestination void MapFrom<TResult>(Func<TSource, TDestination, TResult> mappingFunction); 在您的映射函數中,您可以檢查目標對象。

例子:

.ForMember(dest => dest.EmployeeId, opt => opt.MapFrom((src, dest) => dest.EmployeeId ?? src.EmployeeId))

應該能幫到你

CreateMap<YOURMODEL,YOURMODEL2>()
    .ForMember(dest => dest.EmployeeId, opt => {
        opt.PreCondition(src => src.EmployeeId != null);
        opt.MapFrom(src => src.EmployeeId);

另一種方式

CreateMap<SourceClass, TargetClass>()
    .ForMember(d => d.EmployeeId, o => o.MapFrom(s => s.EmployeeId))
    .ForAllMembers(o => o.Condition((src, dest, value) => value != null));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM