首页 > 解决方案 > Automapper 映射自定义值 ForMember

问题描述

我正在使用自动映射器 8.1.1

如何为目标成员而不是从源分配值。

我有这个代码`

    public IEnumerable<PartsTreeVM> GetMainPartsCategories(int type)
    {
        var model = _db.GetALLPartCategoriesTreeWithImages(type, 25);
        var mapper = new MapperConfiguration(cfg => cfg.CreateMap<GetALLPartCategoriesTreeWithImages_Result, PartsTreeVM>()
                .ForMember(dest => dest.VehicleType, opt => opt.MapFrom(type))
            )
            .CreateMapper();
        var result = mapper.Map<List<PartsTreeVM>>(model);

        return result;
    }

我希望将 int 类型参数分配给所有 dest.VehicleType 成员。

提前致谢

标签: c#asp.net-mvcautomapper

解决方案


你可以试试这个:

var model = _db.GetALLPartCategoriesTreeWithImages(type, 25);
        var mapper = new MapperConfiguration(cfg => cfg.CreateMap<GetALLPartCategoriesTreeWithImages_Result, PartsTreeVM>()
                .ForMember(dest => dest.VehicleType, opt => opt.MapFrom(s => type))
            )
            .CreateMapper();

或者你可以使用AfterMap示例你可以试试这个:

var model = _db.GetALLPartCategoriesTreeWithImages(type, 25);
        var mapper = new MapperConfiguration(cfg => cfg.CreateMap<GetALLPartCategoriesTreeWithImages_Result, PartsTreeVM>()
                .AfterMap((s, d) => {
                    d.VehicleType = type;
                }) 
            )
            .CreateMapper();

推荐阅读