2011-05-13 69 views
3

我需要映射PriorityId - > TcTaskPriorityIdAutomapper - RecognizePrefixes不起作用

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

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

这是行不通的。

回答

2

使用RecognizeDestinationPrefixes方法。

1

你可以尝试:

Mapper.Initialize(cfg => { 
    cfg.RecognizePrefixes("TcTask"); 
    cfg.CreateMap<Task, TpTasksEntity>(); 
}); 
+0

不,这也不起作用。 – user256034 2011-05-13 08:46:36

+0

恐怕达林是正确的源头必须有前缀 – alexl 2011-05-13 08:47:47

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