2011-05-13 67 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);