Hello
В настоящее время я создаю серверную часть ASP.NET.
Для отображения сущностей и объекта модели я использую AutoMapper (версия 4.2.1).
Когда я отправляю почтовый запрос Почтальону для создания задачи, я всегда получаю исключение, которое говорит:
Отсутствует конфигурация карты типов или не поддерживается отображение.
Типы сопоставления: NewTask -> Task TaskManager.Web.Api.Models.NewTask ->
TaskManager.Data.Entities.Task
Путь назначения: задача
Исходное значение: TaskManager.Web.Api.Models.NewTask
Я попробовал несколько вещей, но так и не пришел к результату, который сработал.
Вот мой AutoMapperAdapter.cs:
Я всегда получаю сообщение об ошибке в этом файле
namespace TaskManager.Common.TypeMapping {
public class AutoMapperAdapter : IAutoMapper {
public T Map<T>(object objectToMap) {
try {
return Mapper.Map<T>(objectToMap);
} catch (Exception ex) {
throw ex;
}
}
}
}
И процессор AddTaskMaintenance:
namespace TaskManager.Web.Api.MaintenanceProcessing {
public class AddTaskMaintenanceProcessor : IAddTaskMaintenanceProcessor {
private readonly IAutoMapper _autoMapper;
private readonly IAddTaskQueryProcessor _queryProcessor;
public AddTaskMaintenanceProcessor(IAddTaskQueryProcessor queryProcessor, IAutoMapper autoMapper) {
_queryProcessor = queryProcessor;
_autoMapper = autoMapper;
}
public Models.Task AddTask(NewTask newTask) {
var taskEntity = _autoMapper.Map<Data.Entities.Task>(newTask);
_queryProcessor.AddTask(taskEntity);
var task = _autoMapper.Map<Models.Task>(taskEntity);
return task;
}
}
}
Отображение объектов модели на объекты и обратно выглядит так:
namespace TaskManager.Web.Api.AutoMappingConfiguration {
public class NewTaskToTaskEntityAutoMapperTypeConfigurator : IAutoMapperTypeConfigurator {
public void Configure() {
Mapper.Initialize(conf => {
conf.CreateMap<NewTask, TaskManager.Data.Entities.Task>()
.ForMember(opt => opt.Version, x => x.Ignore())
.ForMember(opt => opt.CreatedBy, x => x.Ignore())
.ForMember(opt => opt.TaskId, x => x.Ignore())
.ForMember(opt => opt.CreatedDate, x => x.Ignore())
.ForMember(opt => opt.CompletedDate, x => x.Ignore())
.ForMember(opt => opt.Status, x => x.Ignore())
.ForMember(opt => opt.Users, x => x.Ignore());
});
}
}
}
И другой файл:
namespace TaskManager.Web.Api.AutoMappingConfiguration {
public class TaskEntitiyToTaskAutoMapperTypeConfigurator : IAutoMapperTypeConfigurator {
public void Configure() {
Mapper.Initialize(conf => {
conf.CreateMap<Task, Models.Task>()
.ForMember(opt => opt.Links, x => x.Ignore())
.ForMember(opt => opt.Status, x => x.Ignore())
.ForMember(opt => opt.Assignees, x => x.ResolveUsing<TaskAssigneesResolver>());
});
}
}
}
Мои вопросы:
В чем может быть проблема с моим кодом?
Нужно ли обновлять версию AutoMapper?