2016-11-09 88 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

非常感謝,您剛剛讓我走 –