簡體   English   中英

如何使用自動映射器將空字符串映射為null?

[英]How to map empty strings as null with automapper?

我需要將空字符串從源模型映射為null到目標模型。 首先,我為此使用了下一個配置文件:

public class MyProfile:Profile
{
    public MyProfile()
    {
       CreateMap<SrcModel, DestModel>()
       .ForMember(dst => dst.Field1, opt => 
       {
          opt.Condition(src => !string.IsNullOrEmpty(src.src_Field1));
          opt.MapFrom(src => src.src_Field1)
       })
       //.......
       //same for other 15 fields
    }
}

但是復制相同的邏輯看起來不是很好,並且很難對其進行修改。

我也試圖為這樣的字符串創建特殊的映射:

CreateMap<string, string>().ConvertUsing(src => string.IsNullOrEmpty(src) ? 
null : src)

但是這樣的字符串映射對我所有的映射都有影響,但是我只需要對幾個映射使用這種邏輯,而對所有映射都不需要。

我也嘗試過使用ForAllMembers方法:

... .ForAllMembers(opt => opt.Condition();

但是無法定義源成員的類型來為字符串指定某些條件。

為一個映射為多個相同類型的成員定義一些通用映射邏輯的最佳方法是什么?

只需重復一下邏輯,我要做的最多就是將Condition部分提取到可以調用的擴展方法中。

暫無
暫無

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

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