AutoMapper:几乎总是修剪字符串

时间:2018-03-20 21:54:12

标签: c# automapper-3

所以,按照this answer的建议,我在我的基本AutoMapper(3.3.1)配置中设置了一个字符串来修剪字符串映射,如下:

configuration.CreateMap<string, string>().ConvertUsing<StringToTrimmedStringConverter>();

哪个很好用,除了我的数据库中的两个字段,它们需要为了互操作性而保留空格。在我的数据模型中,我可以做什么来实体映射,以便在两个字符串字段之间进行映射时保留空格?我试过了:

.ForMember(d => d.WhitespaceField, 
    opts => opts.ResolveUsing<WhitespaceStringResolver>
            (m => m.WhitespaceModelField))

其中WhitespaceStringResolver只是一个无操作:

public class WhitespaceStringResolver : ValueResolver<string, string>
{
 protected override string ResolveCore(string source)
 {
  return source;
 }
}

但那不起作用。我可以看到执行击中旋转变压器,但无论如何,弦都会被修剪掉。

有没有办法忽略基本配置的映射而不修剪字符串,只是为了我明确要忽略它的几个字段?

此时我不想升级AutoMapper版本。

1 个答案:

答案 0 :(得分:0)

最终得出的结论是

.AfterMap((model, entity) => 
  { entity.WhitespaceField = model.WhitespaceModelField; })

如果我不需要按照约定使用模型到实体的映射进行搜索的库,我可能还需要一个字段到字段的映射。

我也可以标记entity.WhitespaceField。