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

      

      

  • 相关阅读:
    windows下安装mysql教程
    python生成器实现杨辉三角
    python默认参数问题
    python中判断素数的函数
    extract()和extact_first()的区别
    硬连接和软连接的区别
    du与df的区别
    命题逻辑
    关于 better-scroll 设置了以后无法滚动或不生效的问题
    Maven *IDEA*
  • 原文地址:https://www.cnblogs.com/besos/p/13355069.html
Copyright © 2011-2022 走看看