#c# #asp.net-mvc-3 #automapper
#c# #asp.net-mvc-3 #automapper
Вопрос:
Допустим, у меня есть объект домена, подобный этому:
public class Product
{
public int Id {get;set;}
public string Name {get;set;}
public string Description {get;set;}
public int DisplayOrder {get;set;}
//Lots of other properties
}
Однако, на мой взгляд, я хочу использовать 2 разные модели представления, которые используют разные свойства класса продукта.
public class ProductViewModel1
{
public int Id {get;set;}
public string Name {get;set;}
//A mix of some of the other properties
}
public class ProductViewModel2
{
public int Id {get;set;}
public string Description {get;set;}
//A different mix of the other properties
}
Для Automapper:
Mapper.CreateMap<Product, ProductViewModel1>();
Mapper.CreateMap<Product, ProductViewModel2>();
Вопрос (ы):
Необходимо ли добавлять все игнорируемые свойства в CreateMap? Есть ли значительные накладные расходы, если это не выполняется для более крупных объектов? Спасибо.
Ответ №1:
В этом нет необходимости, но когда вы проводите модульное тестирование своих сопоставлений (или утверждаете во время выполнения, чтобы убедиться, что они точны), для его успешного выполнения требуются игнорирования.
Mapper.AssertConfigurationIsValid();
Вы можете прочитать больше о проверке правильности конфигурации AutoMapper здесь:
http://automapper.codeplex.com/wikipage?title=Configuration Validation
Комментарии:
1. Спасибо, Пол. Ссылка была полезной из-за метода расширений, на который он ссылался для игнорирования всех не отображенных свойств в модульном тестировании.