В простейшей форме вам просто нужно использовать AutoMapper для сопоставления вашей модели с вашим объектом Domain / DTO, а затем сохранить это в хранилище данных, как бы вы это ни делали.
Что-то, что в значительной степени связано с одним из проектов, которые я сделал:
Mapper.Map(modelObject, domainObject);
domainObject.Save();
return domainObject.Id;
Возможно, вы захотите вернуть идентификатор любого метода, который вы вызываете, чтобы вы могли использовать его дальше. Это просто грубый пример, но в этом его основа ...
EDIT:
Строка: Mapper.Map
помещает данные ViewModel в объект Domain. Оттуда Save()
вызывает все, что вам нужно. В вашем случае это будет ваш IRepository.Save()
метод. Для меня это вызов в nHibernate's SaveOrUpdate
В моей конфигурации AutoMapper у меня есть что-то вроде:
Mapper.CreateMap<OrderDomain, OrderViewDTO>();
и
Mapper.CreateMap<OrderSaveDTO, OrderDomain>();
Это помогает?