1

我尝试设置成员名称映射约定,以便以“Id”结尾的源成员映射到没有 Id 的目标成员。例如

用户 ID -> 用户

如何做到这一点?我尝试使用 SourceMemberNameTransformer 没有成功。还尝试使用 RecognizePostfixes()。

    this.SourceMemberNameTransformer = s =>
                                      {     
                                          return s.Replace("Id", string.Empty);
                                      };
4

3 回答 3

1

您还可以使用“RecognizePostfixes”方法:

this.RecognizePostfixes("Id");

内置变压器是这样的,仅供参考:

s => Regex.Replace(s, "(?:^Get)?(.*)", "$1");
于 2010-02-18T17:37:32.027 回答
0

这应该工作:

this.SourceMemberNameTransformer = s =>
          {
              if (s.EndsWith("Id"))
                  return s.Substring(0, s.Length - 2);               
              return s;
          };

您也可以尝试使用DestinationMemberNamingConventionregex 来实现。

于 2010-02-15T20:12:33.010 回答
0

到目前为止,在将其设置为Profile. 既不工作SourceMemberNameTransformer也不RecognizePostfix工作Profile。但是在 Automapper 全局配置中指定它工作正常。

于 2010-02-25T19:46:46.680 回答