我尝试设置成员名称映射约定,以便以“Id”结尾的源成员映射到没有Id的目标成员。例如
UserId - >用户
如何做到这一点?我尝试使用SourceMemberNameTransformer但没有成功。还尝试使用RecognizePostfixes()。
this.SourceMemberNameTransformer = s =>
{
return s.Replace("Id", string.Empty);
};
答案 0 :(得分:1)
您还可以使用“RecognizePostfixes”方法:
this.RecognizePostfixes("Id");
内置变压器就是这个,仅供将来参考:
s => Regex.Replace(s, "(?:^Get)?(.*)", "$1");
答案 1 :(得分:0)
这应该有效:
this.SourceMemberNameTransformer = s => { if (s.EndsWith("Id")) return s.Substring(0, s.Length - 2); return s; };
您也可以尝试使用DestinationMemberNamingConvention
和正则表达式来实现这一目标。
答案 2 :(得分:0)
截至目前,在Profile
中进行设置时似乎无效。 SourceMemberNameTransformer
或RecognizePostfix
都不适用于Profile
。但是,在Automapper全局配置中指定它可以正常工作。