首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mapster和非匹配成员名

Mapster和非匹配成员名
EN

Stack Overflow用户
提问于 2022-05-21 15:41:41
回答 1查看 524关注 0票数 2

当字段名不匹配时,Mapster就不会映射。字段根据类型设置为空或零。

如何为目标属性使用自定义名称?

例:我如何将SchoolClassTeacherName改为Name?在下面的代码中和在SchoolDTO类中对其进行更改,将使null成为映射的结果。

我看过文件,但没有答案。求你帮帮我。谢谢。

代码语言:javascript
复制
config.NewConfig<SchoolPoco, SchoolDTO>()
                .Map(dest => dest.SchoolClassTeacherName, 
                     src => src.School.Class.Teacher.Name)

我的Startup.cs里有这个

代码语言:javascript
复制
            var typeAdapterConfig = TypeAdapterConfig.GlobalSettings;
            typeAdapterConfig.Scan(Assembly.GetExecutingAssembly());
            var mapperConfig = new Mapper(typeAdapterConfig);
            services.AddSingleton<IMapper>(mapperConfig);

我在一个类中有映射

代码语言:javascript
复制
    public class ProjectMappingProfile : IRegister
    {
        void IRegister.Register(TypeAdapterConfig config)
           {
             // Mappings here
           }
    }
EN

回答 1

Stack Overflow用户

发布于 2022-05-22 20:57:31

使用TypeAdapterConfig,如文档中所述。

确保设置了学校、班级、教师、姓名属性。

样本代码:

代码语言:javascript
复制
using Mapster;

TypeAdapterConfig<DtoA, DtoB>
    .NewConfig()
    .Map(dest => dest.Main_Property, src => src.MainProperty)
    .Map(dest => dest.Inner_Property, src => src.InnerDto.InnerProperty);

DtoA a = new DtoA()
{
    MainProperty = "Hello",
    InnerDto = new InnerDto() { InnerProperty = "World" }
};
DtoB b = a.Adapt<DtoB>();


class DtoA
{
    public string MainProperty { get; set; }
    public InnerDto InnerDto { get; set; }
}

class InnerDto
{
    public string InnerProperty { get; set; }
}

class DtoB
{
    public string Main_Property { get; set; }
    public string Inner_Property { get; set; }
}

b变量的结果:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72331032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档