Automapper не находит конфигурацию карты типов для дочернего свойства - PullRequest
0 голосов
/ 19 декабря 2018

Я использую AutoMapper 6.1.1.0 и имею следующие типы:

Источник:

public class PaymentPlan
{
    private List<ScheduledPayment> _scheduledPayments = new List<ScheduledPayment>();
    private Rates _ratesApplied;

    public Rates RatesApplied
    {
        get { return _ratesApplied; }
        set { _ratesApplied = value; }
    }

    public List<ScheduledPayment> ScheduledPayments
    {
        get { return _scheduledPayments; }
        set { _scheduledPayments = value; }
    }
}

Dest:

public class PaymentPlanModel
{
    public RatesModel RatesApplied { get; set; }

    public List<ScheduledPaymentModel> ScheduledPayments { get; set; }
}

public class ClassEnrollmentPaymentPlanVM : PaymentPlanModel
{
    public Guid PricePlanID { get; set; }

    public string Name { get; set; }

    public bool IsSelected { get; set; }

    public bool AutoDraftEnabled { get; set; }

    public bool BillingDayChoiceEnabled { get; set; }

    public List<int> AvailableBillingDays { get; set; }

    public int SelectedBillingDay { get; set; }
}

Отображение профиля конфигурации:

CreateMap<Rates, RatesModel>();
CreateMap<ScheduledPayment, ScheduledPaymentModel>();
CreateMap<PaymentPlan, PaymentPlanModel>();
CreateMap<PaymentPlan, ClassEnrollmentPaymentPlanVM>();
    //.IncludeBase<PaymentPlan, PaymentPlanModel>();

ClassEnrollmentPaymentPlanVM наследуется PaymentPlanModel.Я пытаюсь сопоставить источник PaymentPlan с ClassEnrollmentPaymentPlanVM, чтобы заполнить все базовые свойства PaymentPlanModel, но жалуется, что это «Отсутствует конфигурация карты типов или неподдерживаемое сопоставление».для Rates -> RatesModel.При устранении этой ошибки я попытался закомментировать мой IncludeBase звонок, но получил тот же результат.Я четыре раза проверил, правильны ли пространства имен.Почему он не находит мое отображение от Rates до RatesModel?

Редактировать:

Отображение инициируется так:

private static IMapper _mapper = MapperConfig.EntityWebMapper;
...

PaymentPlan paymentPlan = pmtCalc.CalculatePaymentPlan(calcInput);

ClassEnrollmentPaymentPlanVM paymentPlanVM = _mapper.Map<ClassEnrollmentPaymentPlanVM>(paymentPlan);

И точноесообщение об исключении / ошибке представляет собой AutoMapperMappingException с указанием:

Типы сопоставления ошибок.

Типы сопоставления: PaymentPlan -> ClassEnrollmentPaymentPlanVM CRM.Logic.CRM.PaymentCalculation.PaymentPlan -> CRM.MVCWeb.ViewModels.

Внутреннее исключительное сообщение:

Отсутствует конфигурация карты типов или не поддерживается отображение.

Типы отображения: Rates -> RatesModel CRM.Logic.CRM.PaymentCalculation.Rates -> CRM.MVCWeb.Models.PaymentCalculation.RatesModel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...