Ваше исключение гласит: «Аргумент 1: невозможно преобразовать из« AppModels.contact »в« DbModels.contact »».
Ваше отображение из версии DbModel в версию AppModel. Не уверен, какую версию AM вы используете, но есть функция ReverseMap, которую вы можете связать до конца вызова карты и сделать так, чтобы она выполнялась обоими способами.
Вот коммит, где он был добавлен в AM.
https://github.com/AutoMapper/AutoMapper/commit/bff6e2aa49af3e7b50f527376da48924efa7d81e
Для дальнейшего использования, вот документ к методу ReverseMap:
http://docs.automapper.org/en/stable/Reverse-Mapping-and-Unflattening.html
ОБНОВЛЕНИЕ: Я только что заметил, что вы используете Map () вместо CreateMap (). AM - двухэтапный процесс ... 1, чтобы создать карту, и 1, чтобы сделать отображение. Вы делаете только второй шаг в инициализации, но пропускаете первую часть. Я также обновил приведенный ниже пример, так как только что скопировал ваш код дословно и добавил обратный вызов.
Изменить эту строку в (метод Initialize):
var dest = mapper.Map<DbModels.contact, AppModels.contact>(source);
К этому:
var dest = mapper.CreateMap<DbModels.contact, AppModels.contact>(source).ReverseMap();
Затем измените это в вашем сохранении:
using (var dbcontext = new myDbContext())
{
dbcontext.contact.Add(ContactDetails); // Argument 1: cannot convert from 'AppModels.contact' to 'DbModels.contact'
dbcontext.SaveChanges();
}
На это:
using (var dbcontext = new myDbContext())
{
dbcontext.contact.Add(AM.Map<Src, Dest>(ContactDetails)); // This is pseudo...you have to have the mapper in scope as was pointed out in the comments of your ? and I don't think the Src type is required in most versions of AM.
dbcontext.SaveChanges();
}
Вот пример его использования:
var dest = mapper.CreateMap<DbModels.contact, AppModels.contact>(source).ReverseMap();