Automapper v8 не игнорирует навигационные свойства класса EF (Entity Framework) - PullRequest
0 голосов
/ 13 марта 2019

Ниже приведен код профиля Automapper:

public class MyMappingProfile: Profile
{
    public MyMappingProfile()
    {
        Mapper.Initialize(cfg => {
            cfg.CreateMap<MyModelClass, MyEntityClass>()
                .ForMember(dest => dest.NavigationProp1, opt => opt.Ignore())
                .ForMember(dest => dest.NavigationProp2, opt => opt.Ignore());
        });
    }
}

Ниже приведен код для создания нового объекта сущности (к вашему сведению, я использую этот код в проекте .NET Core, поэтому _mapper:

var newEntity = _mapper.Map<MyModelClass, MyEntityClass>(model);

Но приведенная выше строка кода выдает следующую ошибку:

Найдены не нанесенные на карту участники. Просмотрите типы и членов ниже. Добавить пользовательское выражение сопоставления, игнорировать, добавить пользовательский преобразователь или изменить тип источника / назначения

Если нет подходящего конструктора, добавьте ctor без аргументов, добавьте необязательные аргументы или отобразите все параметры конструктора

AutoMapper создал эту карту типов для вас, но ваши типы не могут быть сопоставлены с использованием текущей конфигурации. MyModelClass -> MyEntityClass (список получателей) MyModelClass -> MyEntityClass (список получателей)

Несопоставленные свойства:

NavigationProp1

NavigationProp2

Есть идеи, почему Automapper по-прежнему жалуется на несопоставленных членов, даже если они игнорируются?

Спасибо.

1 Ответ

1 голос
/ 27 марта 2019

Я, наконец, решил ее, изменив класс профиля отображения, как показано ниже:

public class MyMappingProfile: Profile
{
    public MyMappingProfile()
    {
        CreateMap<MyModelClass, MyEntityClass>()
            .ForMember(dest => dest.NavigationProp1, opt => opt.Ignore())
            .ForMember(dest => dest.NavigationProp2, opt => opt.Ignore());
    }
}

Приветствие.

...