Automapper - Не копирование из источника в объект назначения правильно. Ошибки требуют конструктора по умолчанию

Когда я сопоставляю исходный объект в существующий экземпляр, он хочет создать новый объект, а не копировать в...

Вот мой тестовый сценарий:

List<DomainCustomerProxy> domainCustomers = customers.Select(customer => new DomainCustomerProxy(
                new Lazy<List<DomainContact>>(() => RetrieveContactsByCustomerId(customer.Id, lazyLoad, schemaName).ToList(), LazyThreadSafetyMode.ExecutionAndPublication),
                new Lazy<List<DomainDepartment>>(() => RetrieveDepartmentsByCustomerId(customer.Id, lazyLoad, schemaName).ToList(), LazyThreadSafetyMode.ExecutionAndPublication),
                new Lazy<List<DomainGroup>>(() => RetrieveCustomerGroupsByCustomerId(customer.Id, lazyLoad, schemaName).ToList(), LazyThreadSafetyMode.ExecutionAndPublication)
                    )
            {
                Id = customer.Id,
            }).ToList();

            domainCustomers = Mapper.Map(customers, domainCustomers);

            return domainCustomers;

Я получаю эту ошибку: Тип 'Raven.Lib.Domain.CRM.Models.CustomerProxy' не имеет конструктора по умолчанию

public class CustomerProxy : Customer
{
    public CustomerProxy(Lazy<List<Contact>> contacts, Lazy<List<Department>> departments, Lazy<List<Group>> groups)
    {
        _contactLazyList = contacts;
        _departmentLazyList = departments;
        _groupLazyList = groups;
    }

    private readonly Lazy<List<Contact>> _contactLazyList;
    public override List<Contact> Contacts
    {
        get { return _contactLazyList.Value; }
    }

    private readonly Lazy<List<Department>>_departmentLazyList;
    public override List<Department> Departments 
    { 
        get { return _departmentLazyList.Value; } 
    }

    private readonly Lazy<List<Group>> _groupLazyList;
    public override List<Group> CustomerGroups
    {
        get { return _groupLazyList.Value; }
    }
}

Клиентский базовый класс:

public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Number { get; set; }
    public int CreatedById { get; private set; }
    public int ModifiedById { get; private set; }
    public DateTime DateCreated { get; private set; }
    public DateTime DateModified { get; private set; }
    public int Version { get; private set; }

    public virtual List<Contact> Contacts { get; set; }
    public virtual List<Department> Departments { get; set; }
    public virtual List<Group> CustomerGroups { get; set; }

    public SerializableDictionary<string, string> ValidationErrors { get; set; }

    public bool Validate()
    {
        ValidationErrors = new SerializableDictionary<string, string>();

        if (string.IsNullOrWhiteSpace(Name))
        {
            ValidationErrors.Add(LambdaHelper<Customer>.GetPropertyName(x => x.Name), "Customer.Name is a mandatory field.");
        }

        if (Number <= 0)
        {
            ValidationErrors.Add(LambdaHelper<Customer>.GetPropertyName(x => x.Number), "Customer.Number is a mandatory field and can not be 0.");
        }

        return ValidationErrors.Count > 0;
    }
}

Теперь, если я создаю пустой конструктор по умолчанию

protected CustomerProxy(){ }

Это не ошибка, но, похоже, вытесняет мой старый экземпляр, это доказательство.

Отображение игнорирования свойств, которые я не хочу перезаписывать.

    CreateMap<DaoCustomer, DomainCustomerProxy>()
        .ForMember(dest => dest.Contacts, opt => opt.Ignore())
        .ForMember(dest => dest.CustomerGroups, opt => opt.Ignore())
        .ForMember(dest => dest.Departments, opt => opt.Ignore())
        .ForMember(dest => dest.ValidationErrors, opt => opt.Ignore());

До: enter image description here После: enter image description here

Я неправильно использую automapper? domainCustomers = Mapper.Map(клиенты, domainCustomers);

Маленькая задняя поверхность: Я использую шаблон виртуального прокси для ленивой загрузки моих контактов, отделов и групп, так как это очень большие списки. Вот почему я наследую от клиента, который является базовым классом.