Net Core: Automapper для сопоставления Id с ClassName + Id в общем хранилище - PullRequest
2 голосов
/ 26 сентября 2019

У нас есть база данных, слой домена и общий репозиторий (не мой выбор) от архитектора компании.

Попытка сопоставить класс Scaffold базы данных Employee с классом Domain Employee.Это код для сопоставления, если все имена членов класса в точности совпадают.

Mapper.CreateMap<EmployeeData, EmployeeDomain>();

Однако члены первичного ключа в классе базы данных имеют имя Id (для соответствия универсальному репозиторию).Итак, как мне создать унаследованную или новую функцию AutoMapper класса и сопоставить Id с EmployeeId в домене, сопоставляя другие члены?

Вот как вручную сопоставить Id с идентификатором сотрудника.Мне нужно создать функцию, принимающую любой класс (ProductId, SalesId, CustomerId и т. Д.), И сопоставить идентификатор с «ClassName» + id, в то же время правильно сопоставляя другие члены с таким же именем.

Mapper.CreateMap<EmployeeData, EmployeeDomain>()
    .ForMember(dest => dest.EmployeeId, opt => opt.MapFrom(src => src.Id))

Функция в идеале должна бытьвозможность принимать другие функции Automapper, такие как .ReverseMap и т. д.

...