自动映射 - RecognizePrefixes不起作用

时间:2011-05-13 08:33:40

标签: c# automapper

我需要映射PriorityId - > TcTaskPriorityId

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

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

它不起作用。

3 个答案:

答案 0 :(得分:3)

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);

答案 1 :(得分:2)

使用RecognizeDestinationPrefixes方法。

答案 2 :(得分:1)

你可以尝试:

Mapper.Initialize(cfg => {
    cfg.RecognizePrefixes("TcTask");
    cfg.CreateMap<Task, TpTasksEntity>();
});
相关问题