Этот ответ предполагает, что вы пытаетесь сопоставить Model
с ClassA
, используя свойства ClassAModel
и числовое свойство с Model
:
CreateMap<Model, ClassA>()
.ConstructProjectionUsing(x => new ClassA(){Name = x.ModelClassA.Name, Number = x.Number});
Этот ответ предполагает, что вы хотитесопоставить Model
с экземплярами ClassA
и ClassB
.При этом используется динамическое связывание двух объектов.
CreateMap<Model, dynamic>()
.ConstructProjectionUsing(x => new { A = new ClassA() { Name = x.ModelClassA.Name, Number = x.Number },
B = new ClassB() { Department = x.ModelClassA.Name, Number = x.Number }});
Надеемся, что это полезно.
Чтобы уменьшить ручное отображение, вы можете сделать что-то вроде этого (непроверенный код):
CreateMap<Model, ClassA>()
.ConstructProjectionUsing(x => Mapper.Map<ClassA>(x.ModelClassA))
.ForMember(x => x.Number, y => y.MapFrom(src => src.Number));
CreateMap<Model, ClassB>()
.ConstructProjectionUsing(x => Mapper.Map<ClassB>(x.ClassBModel))
.ForMember(x => x.Number, y => y.MapFrom(src => src.Number));
CreateMap<Model, dynamic>().ConstructProjectionUsing(x => new {A = Mapper.Map<Model, ClassA>(x), B = Mapper.Map<Model, ClassB>(x)});