Наверное, это слишком долго для комментария:
Хотя ответ Джимми правильный, он может означать, что ваш дизайн может быть не настолько инкапсулирован, как мог бы быть, поскольку вам придется выставлять много состояний. Возможно, поэтому есть комментарии вокруг «анемичных» моделей и «не соответствующих назначению».
Если вы сосредоточены на поведении, то у вас может быть что-то совершенно гипотетическое, чтобы сделать вашего клиента золотым клиентом:
customer.MakeGold();
Однако при использовании состояния теперь вам придется предоставлять атрибуты, позволяющие сопоставлять статус Gold. Внутренне ваш клиент мог проверить определенное другое состояние, чтобы определить действительность статуса Gold, в то время как эта проверка достоверности теперь перемещена за пределы домена, как Джимми говорит, что он что состояние правильное, прежде чем передать его в домен.
Это не столько проблема автомаппера, сколько проблема дизайна. Это также указывает на то, что ваша модель API/интеграции может быть более ориентированной на данные.
С другой стороны, если вы сопоставляете, скажем, объекты значений в командном стиле, которые передаются домену, это может быть не так плохо :)
// map my APIActivationDetails to Activate --- however automapper does this :)
var activate = AutoMapper.Map<Activate>().From(apiActivationDetails);
customer.Activate(activate);
Если подумать... кажется, это то, что Джимми говорит :P
29.04.2016