@kolejium
Программист .NET, увлекаюсь дизайном и 3D графикой

Как Automapper createmap без destinition или AutoMapper и Many-to-Many?

Привет всем!
Нужна помощь по маппингу)
Есть три сущности и 2 DTO - их составляющие не влияют сильной роли, но смысл в связи.
public class ClassroomDTO
    {
        public Guid Id { get; set; }
        public byte Number { get; set; }
        public char Letter { get; set; }
        public IList<TeacherDTO> Teachers { get; set; }
    }
    public class TeacherDTO
    {
        public Guid Id { get; set; }
        public string Name { get; set; }
        public string Surname { get; set; }
        public byte Age { get; set; }
        public string Position { get; set; }
        public IList<ClassroomDTO> Classrooms { get; set; }
    }
public ClassroomEntity : BaseEntity 
{
        public ClassroomEntity() : base()
        {
            Teachers = new List<TeacherClassroomEntity>();
        }
        public byte Number { get; set; }
        public char Letter { get; set; }
        public virtual IList<TeacherClassroomEntity> Teachers { get; set; }
}

public TeacherEntity : BaseEntity 
{
        public TeacherEntity() : base()
        {
            Classrooms = new List<TeacherClassroomEntity>();
        }

        public string Name { get; set; }
        public string Surname { get; set; }
        public byte Age { get; set; }
        public EPosition Position { get; set; }
        public virtual IList<TeacherClassroomEntity> Classrooms { get; set; }
}

    public class TeacherClassroomEntity
    {
        public Guid TeacherId { get; set; }
        public Guid ClassroomId { get; set; }
        public TeacherEntity Teacher { get; set; }
        public ClassroomEntity Classroom { get; set; }
    }


Получаю например учителя, примерно вот так: _uow.Teachers.Entities.Include(x => x.Classrooms).ThenInclude(x => x.Classroom); - полная информация по учителю включая классы в которых он ведет.
Теперь сами маппы:

Что-то вроде такого:
CreateMap<TeacherEntity, TeacherDTO>();
CreateMap<ClassroomEntity, ClassroomDTO>();

И вот тут вопрос как прописать такую маппу:
CreateMap<TeacherClassroomEntity, ClassroomDTO>()???
вот так: .ForMember(dest => dest, opt => opt.MapFrom(source => source.Classroom)? - ругается.


Так как быть? Потому как EF отрабатывает хорошо, а с маппить я не могу.
P.S. Если можно то с объяснением) И если все в корне не правильно пожалуйста приведите пару примеров!)
P.S. ForMemeber - по каждому свойству я знаю, но у меня есть перегруженные DTO (так называемые СущностьStatsDTO - которые состоят из очень большой кучи полей)
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
@kolejium Автор вопроса
Программист .NET, увлекаюсь дизайном и 3D графикой
Ребят, все же у меня получилось решить самому, внизу кодяра, но если вы знаете способ лучше, пожалуйста поделитесь!) Буду очень благодарен!!!

CreateMap<TeacherEntity, TeacherDTO>()
                .ForMember(dest => dest.Classrooms, opt => opt.MapFrom(source => source.Classrooms.Select(x => x.Classroom).ToList()));
            CreateMap<ClassroomEntity, ClassroomDTO>()
                .ForMember(dest => dest.Teachers, opt => opt.MapFrom(source => source.Teachers.Select(x => x.Teacher).ToList()));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы