在 Automapper 映射中使用丢弃变量

安德烈·登金

我需要使用 Automapper 映射安全地将逗号分隔的字符串变量转换为 int 列表。

在 Automapper 6.2.2 版本中,我是这样做的:

cfg.CreateMap<FilterRequest, Filter>()
.ForMember(dest => dest.SomeIds, opt => opt.ResolveUsing(src => !string.IsNullOrEmpty(src.SomeIds) ? src.SomeIds.Split(',').Where(x => int.TryParse(x, out _)).Select(int.Parse).ToList() : null));

但是在将 Automapper 升级到版本 8.1.1 后,该ResolveUsing方法与MapFrom方法合并当我尝试MapFrom使用以下方法替换我的映射时

cfg.CreateMap<FilterRequest, Filter>()
.ForMember(dest => dest.SomeIds, opt => opt.MapFrom(src => !string.IsNullOrEmpty(src.SomeIds) ? src.SomeIds.Split(',').Where(x => int.TryParse(x, out _)).Select(int.Parse).ToList() : null))

我在丢弃变量中有一个错误TryParse表达式树可能不包含丢弃

如何在 Automapper 映射中使用丢弃变量?

Cheng Chen

您可以使用此重载:

void MapFrom<TResult>(Func<TSource, TDestination, TResult> mappingFunction);

cfg.CreateMap<FilterRequest, Filter>()
    .ForMember(
        dest => dest.SomeIds,
        opt => opt.MapFrom((src, dest) => src.SomeIds
            .Split(',')
            .Where(x => int.TryParse(x, out _))
            .Select(int.Parse)
            .ToList()));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章