На основании вашего комментария я понимаю, что AutoMapper создает тип прокси для свойства интерфейса Specification
.
Таким образом, у вас есть:
public class CPUSpecification : IHardwareSpecification { }
и
public class IHardwareSpecificationProxy : IHardwareSpecification{ }
Это два несовместимых типа, и IHardwareSpecificationProxy
объект не может быть преобразован в CPUSpecification
.
Вам нужно указать AutoMapper использовать класс CPUSpecification
вместо динамического прокси.
Edit:
Учитывая, что у вас есть CPUSpecificationDTO
внутри SystemTransactionDTO
, вы можете достичь того, что вам нужно, с помощью следующего кода:
Mapper.CreateMap<SystemTransactionDTO, SystemTransaction>();
Mapper.CreateMap<CPUSpecificationDTO, CPUSpecification>();
Mapper.CreateMap<CPUSpecificationDTO, IHardwareSpecification>()
.ConvertUsing(dto => Mapper.Map<CPUSpecificationDTO, CPUSpecification>(dto));
И нет необходимости изменять Specification
тип свойства на CPUSpecification
:).