2013-05-27 4 views
4

Я унаследовал свой базовый класс «Пользователь», чтобы создавать определенные роли.Унаследованный источник и назначение Automapper

например ...

public class Business : User{ 
public string BusinessName; 
} 

Я сделал подобную вещь для моего просмотра моделей, начиная с базового «UserModel» и наследовании, который включает роль, определенную функциональность.

public class BusinessModel : UserModel{ 
[Required()] 
public string BusinessName; 
} 

Когда я использую Automapper для отображения изменений в моей бизнес-модель обратно в мой бизнес-объект, он не включает в себя какие-либо изменения в унаследованных полей.

//create map between model and business object 
Mapper.CreateMap<BusinessModel, Business>(); 

//load the relevant business 
var business = GetCurrentBusiness(); 

//map the values across 
Mapper.Map<BusinessModel, Business>(model, business); 

Изменения в любых полях в разделе «Бизнес» это само наличие. Однако никаких изменений в полях, унаследованных от Пользователя, нет.

Может ли Automapper просто не отображать унаследованные типы? Или я чего-то не хватает?

ответ

5

Вам необходимо создать карту для базового типа, а затем включить унаследованный тип. См. Файл automapper docs here.

Mapper.CreateMap<UserModel, User>() 
     .Include<BusinessModel, Business>(); 
Mapper.CreateMap<BusinessModel, Business>(); 
Смежные вопросы