Я пытаюсь понять, как использовать Automapper, когда моя сущность имеет поле типа entity.
У меня есть 3 таких класса:
public abstract class Entity<IdK>
{
public virtual IdK Code { get; protected set; }
}
public class Contact : Entity
{
public virtual string Name { get; set; }
public virtual Company Company { get; set; }
}
public class Company : Entity
{
public virtual string Name { get; set; }
}
Мой класс Contact содержит элемент типа Company.
Я также создал ViewModel для передачи некоторой информации в мое представление:
public ContactViewModel()
{
public Guid Code { get; set; }
public int Version { get; set; }
[DisplayName("Contact")]
public string Name { get; set; }
[DisplayName("Company")]
public string Company { get; set; }
}
В моей модели представления я определил поле Company типа string. Он будет содержать значение, которое пользователь выберет из раскрывающегося списка (список компаний).
Я определил загрузчик при запуске моего приложения:
public class AutoMapperConfiguration
{
public static void Configure()
{
Mapper.Initialize(x => {
x.CreateMap<Domain.Contact, ViewModels.ContactViewModel>();
x.CreateMap<ViewModels.ContactViewModel, Domain.Contact>()
});
}
}
Когда я пытаюсь переназначить ViewModel на свой объект, я получаю сообщение об ошибке преобразования (AutoMapper.AutoMapperMappingException). Automapper не может понять, как преобразовать мою компанию (строку) в объект типа Company, члена Contact. Можно ли определить правило, чтобы Automapper знал, как преобразовать строку (компанию) в код моего объекта Company, члена Contact?