【问题标题】:Trim String In Automapper在 Automapper 中修剪字符串
【发布时间】:2015-01-23 19:42:09
【问题描述】:
Mapper.CreateMap<DataViewModel, DataSource>()

My Source Here 包含来自用户界面的字符串值。我想在将其映射到目标对象之前修剪所有字符串。找不到解决方案。任何人都知道这是怎么做的

【问题讨论】:

    标签: asp.net-mvc orm automapper datamapper asp.net-mvc-5.1


    【解决方案1】:

    这可以使用ForMember 方法完成,如下所示:

    Mapper.CreateMap<DataViewModel, DataSource>()
    .ForMember(x => x.YourString, opt => opt.MapFrom(y => y.YourString.Trim()));
    

    如果你想修剪多个属性,你可以像这样链接.ForMember() 方法:

    Mapper.CreateMap<DataViewModel, DataSource>()
    .ForMember(x => x.YourString, opt => opt.MapFrom(y => y.YourString.Trim()))
    .ForMember(x => x.YourString1, opt => opt.MapFrom(y => y.YourString1.Trim()))
    .ForMember(x => x.YourString2, opt => opt.MapFrom(y => y.YourString2.Trim()));
    

    虽然这可以完成工作,但我建议您在应用程序的其他地方执行输入清理,因为它不属于映射。

    【讨论】:

    • 我想对源对象的所有成员进行修剪,而不是对单个成员进行修剪。你能告诉我这是怎么做的吗?
    • 可以参考@Andrew Whitaker 的answer
    【解决方案2】:

    你也可以使用AddTransform

    CreateMap<DataViewModel, DataSource>()
        .AddTransform<string>(s => string.IsNullOrWhiteSpace(s) ? "" : s.Trim());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多