Каковы последствия для того, чтобы не игнорировать неиспользуемые свойства в Automapper?

#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. Спасибо, Пол. Ссылка была полезной из-за метода расширений, на который он ссылался для игнорирования всех не отображенных свойств в модульном тестировании.