0

我一直在看这个,试图弄清楚如何让 AutoMapper 工作。这是我之前的

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();

我现在的困难是如何让它在我的控制器中工作,以及我是否走在正确的轨道上。到处都是各种不同的信息和不同的方法,我非常困惑提前谢谢

4

1 回答 1

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))
        );
    }
}
于 2016-11-10T03:06:58.000 回答