Либо нет, либо он не работает ... У меня есть один класс Source, который я хочу сопоставить с несколькими представлениями, которые наследуются друг от друга.
В основном базовый класс - этоDetail, а дочерним классом является Edit или Update, которые используют все те же данные, что и Detail, а также пару других полей для управления своими собственными списками или чем-то еще.
Вот карты, которые я использую:
Mapper.CreateMap<Ticket, Detail>()
.Include<Ticket, Update>()
.Include<Ticket, Edit>()
.ForMember(dest => dest.Priority, opt => opt.MapFrom(src => src.Priority.Code))
.ForMember(dest => dest.TicketID, opt => opt.MapFrom(src => src.ID))
.ForMember(dest => dest.Status, opt => opt.MapFrom(src => src.StatusCode))
.ForMember(dest => dest.Category, opt => opt.MapFrom(src => src.ProblemCategoryCode))
.ForMember(dest => dest.crmBusCode, opt => opt.MapFrom(src => src.Company.crmBusCode))
.ForMember(dest => dest.TeamMembers, opt => opt.MapFrom(src => src.Schedules.Where(s => s.CompleteTime == null)));
Mapper.CreateMap<Ticket, Update>()
.ForMember(m => m.Schedules, opt => opt.MapFrom(t => t.Schedules.Where(s => s.EmployeeID == Util.CurrentUserID() && s.CompleteTime == null)));
Mapper.CreateMap<Ticket, Edit>();
Тогда, если я Mapper.Map (тикет), любое из свойств, использующих MapFrom, не будет оценено, они просто получатсясо значениями, которые были бы у них, если бы не было сопоставления множеств.
Так что же здесь не так?