AutoMapper: настройка соглашения о совпадении имен членов - PullRequest
1 голос
/ 12 февраля 2010

Я попытался настроить соглашение о сопоставлении имен членов, чтобы исходные члены, заканчивающиеся на "Id", отображались на целевые элементы без Id. Например

UserId -> Пользователь

Как это сделать? Я пытался использовать SourceMemberNameTransformer без успеха. Также пытался использовать RecognizePostfixes ().

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

Ответы [ 3 ]

1 голос
/ 18 февраля 2010

Вы также можете использовать метод RecognizePostfixes:

this.RecognizePostfixes("Id");

Встроенный трансформатор для справки:

s => Regex.Replace(s, "(?:^Get)?(.*)", "$1");
0 голосов
/ 25 февраля 2010

На данный момент это не похоже на работу при настройке в Profile.Ни SourceMemberNameTransformer, ни RecognizePostfix не работают в Profile.Однако это указано в глобальной конфигурации Automapper, он работает нормально.

0 голосов
/ 15 февраля 2010

Это должно работать:

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

Вы также можете попытаться достичь этого с помощью DestinationMemberNamingConvention и регулярных выражений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...