• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#实现对象映射Mapster

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

下面是简单例子

1引用Mapster.dll包

2.初始化,设置映射规则

3.下面有两个实体  ModelA 、ModelB

 class ModelA{
    public string UserId{get;set;}
    public string Remark{get;set;}
  }

 

 class ModelB{
    public string User_id{get;set;}
    public string Remark_msg{get;set;}
     public string Lab_id{get;set;}
  }

4.初始化 (推荐: 将所有的映射规则写一起,当项目执行时一起进行初始化操作 ,之后直接使用,避免每次映射都需要进行初始化)

public static void InitMapster()  
        {
        // modelA 映射到 modelB
            TypeAdapterConfig<ModelA, ModelB>
                    .NewConfig()
                    .AddDestinationTransform((string x) => !string.IsNullOrWhiteSpace(x) ? x : " ")  // 空值替换
                    .Map(dest => dest.Lab_id, src => MapContext.Current.Parameters["labId"])  // 获取运行时的labId的值
                    .Map(dest => dest.User_id, src => src.UserId)  // 将UserId的值映射给User_id
                    .Map(dest => dest.Remark_msg, src => src.Remark);  // 将Remark的值映射给Remark_msg


       TypeAdapterConfig<ModelC, ModelD>
             ......
}

5.使用映射

// 调用Mapster 将  List<ModelA> modelAs 映射到 List<ModelB> modelBs
  public void test()
  {
    List<modelA> modelAs = ...;  // 获取modelA对象集合
      int labId = 1;  // 获取 labId的值
    // 进行映射
       var modelBs = modelAs.BuildAdapter()
                            .AddParameters("labId", labId)  // 设置值
                            .AdaptToType<List<ModelB>>();  // 将某一实体映射成List<ModelB>
  }

  

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#服务器端控件发布时间:2022-07-10
下一篇:
C#对泛型实例化对像的方法发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap