使用自动映射器配置文件

简介

我正在创建POC,以将旧的Web表单应用迁移到MVC。作为其一部分,我希望它使用新的(到此位置)工具,例如Automapper,jQuery,Entity Framework等。

我被困在如何正确设置和使用Automapper配置文件上。我认为看到较旧版本的Automapper附带的帮助可能会使我感到困惑。

我想我正在忽略一个非常简单的东西。

详细信息

我有一个工厂方法可以从数据库中获取一些东西,并使用自动映射器将它们从EF表示形式转换为与db无关的表示形式。首先,我只是将映射插入了我的查询方法中:

            var typeConfig = new MapperConfiguration(cfg => cfg.CreateMap<Db.ClaimType,ApplicationObjects.Claims.ClaimType>()
                .ForMember(dest => dest.Id,opts => opts.MapFrom(src => src.ID)));

            var aoTypes = typeConfig.CreateMapper().Map<List<Db.ClaimType>,List<ApplicationObjects.Claims.ClaimType>>(claimTypes);

            return aoTypes;

那很好。

现在,我希望我们能够在应用程序中声明一次每个映射,因此所有更新都将应用于所有用途。我阅读了有关Automapper配置文件的信息,并创建了一个简单的配置文件:

    public class ClaimProfile : Profile
    {
        public ClaimProfile()
        {
            var claimTypeMappingDbToAO = CreateMap<Db.ClaimType,opts => opts.MapFrom(src => src.ID));
            var claimMappingDbToAO = CreateMap<Db.Claim,ApplicationObjects.Claims.Claim>()
                                                .ForMember(dest => dest.Id,opts => opts.MapFrom(src => src.ClaimID))
                                                .ForMember(dest => dest.ClaimTypeId,opts => opts.MapFrom(src => src.ClaimType))
                                                .ForMember(dest => dest.ClaimType,opts => opts.MapFrom(src => src.ClaimType1));
        }
    }

和一个配置类,该类在Global.asax的Application_Start中执行

    public class AutoMapperConfig
    {
        public static void Initialize()
        {
            MapperConfiguration config = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile(new ClaimProfile());
            });

        }
    }

我不清楚如何更改工厂以使用映射的配置文件版本。

w24667266 回答:使用自动映射器配置文件

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3027427.html

大家都在问