所以,按照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版本。
答案 0 :(得分:0)
最终得出的结论是
.AfterMap((model, entity) =>
{ entity.WhitespaceField = model.WhitespaceModelField; })
如果我不需要按照约定使用模型到实体的映射进行搜索的库,我可能还需要一个字段到字段的映射。
我也可以标记entity.WhitespaceField。