Automapper - RecognizePrefixes не работает - PullRequest
3 голосов
/ 13 мая 2011

Мне нужно сопоставить PriorityId -> TcTaskPriorityId

 Mapper.Configuration.RecognizePrefixes("TcTask");
 Mapper.CreateMap<Task, TpTasksEntity>();

 Task t = new Task{PriorityId = 1};          
 var te = Mapper.Map<Task, TpTasksEntity>(t);

Это просто не работает.

Ответы [ 3 ]

3 голосов
/ 13 мая 2011

RecognizePrefixes работает для префиксов исходного объекта, т.е.:

Mapper.Configuration.RecognizePrefixes("TcTask");
Mapper.CreateMap<Task, TpTasksEntity>();

Task t = new Task { TcTaskPriorityId = 1 };
var te = Mapper.Map<Task, TpTasksEntity>(t);

Для вашего сценария вы можете написать собственное соглашение об именах:

Mapper.Configuration.SourceMemberNameTransformer = s => "TcTask" + s;
Mapper.CreateMap<Task, TpTasksEntity>();

Task t = new Task { PriorityId = 1 };
var te = Mapper.Map<Task, TpTasksEntity>(t);
2 голосов
/ 13 мая 2011

Использовать RecognizeDestinationPrefixes метод.

1 голос
/ 13 мая 2011

Можете ли вы попробовать:

Mapper.Initialize(cfg => {
    cfg.RecognizePrefixes("TcTask");
    cfg.CreateMap<Task, TpTasksEntity>();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...