2016-11-09 3 views
0

Я искал this, пытаясь выяснить, как заставить AutoMapper работать. Это то, что я имел ранееКак настроить и использовать automapper 5.1.1

public class DomainToViewModelMappingProfile: Profile 
{ 
    public DomainToViewModelMappingProfile() 
    { 
     Mapper.Initialize(cfg => cfg.CreateMap<Institution, InstitutionDataViewModel>() 
     .ForMember(vm => vm.InstitutionID, map => map.MapFrom(s => s.InstitutionID)) 
     .ForMember(vm=>vm.InstituteName,map=>map.MapFrom(s=>s.InstituteName)) 
     .ForMember(vm=>vm.Circuit,map=>map.MapFrom(s=>s.AdministrativeStructure.AdminStructName)) 
     .ForMember(vm=>vm.Level,map=>map.MapFrom(s=>s.Level.LevelName)) 
     ); 
    } 
} 

Затем следует этому

public class AutoMapperConfiguration 
{ 
    public static void Configure() 
    { 
     Mapper.Initialize(x => 
     { 
      x.AddProfile<DomainToViewModelMappingProfile>(); 
     }); 
    } 
} 

Наконец у меня есть это в моем startup.cs

// Automapper Configuration 
     AutoMapperConfiguration.Configure(); 

Моей трудности в том, как получить эту работу в мой контроллер, и я даже на правильном пути. При всей различной информации и различных подходах во всем месте я страшно запутанных Заранее спасибо

ответ

1

Вашего профиля должен вызвать нестатический метод. Измените его с Mapper.CreateMap... на просто:

public class DomainToViewModelMappingProfile : Profile 
{ 
    public DomainToViewModelMappingProfile() 
    { 
     CreateMap<Institution, InstitutionDataViewModel>() 
     .ForMember(vm => vm.InstitutionID, map => map.MapFrom(s => s.InstitutionID)) 
     .ForMember(vm => vm.InstituteName, map => map.MapFrom(s => s.InstituteName)) 
     .ForMember(vm => vm.Circuit, map => map.MapFrom(s => s.AdministrativeStructure.AdminStructName)) 
     .ForMember(vm => vm.Level, map => map.MapFrom(s => s.Level.LevelName)) 
     ); 
    } 
} 
+0

Большое спасибо, вы только что меня отправили –

Смежные вопросы