zoukankan      html  css  js  c++  java
  • C# 实现对象映射Mapster

    下面是简单例子

    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>
      }
    

      

      

  • 相关阅读:
    python之路 --- python文件模式
    实现购物车功能 --- 文件操作版
    python之路 --- python模块初认识&数据类型
    web自动化之selenium
    python之路 --- python基础
    Ios App破解之路二 JJ斗地主
    记一次 CocoaPod 的使用过程
    Mac 电脑查看 pkg包的安装路径
    使用vscode 开发go项目的最新姿势. go版本1.14.2
    IOS App破解之路一 拿到appstore上的ipa
  • 原文地址:https://www.cnblogs.com/besos/p/13355069.html
Copyright © 2011-2022 走看看