zoukankan      html  css  js  c++  java
  • 记在WEBAPI中AutoMapper的初使用方法

    很早就听说AutoMapper了。这些天一直在写api接口,发现之前的类型转换有点问题,就想到了用AutoMapper。用作DTO转换工具。  废话不多说,直接开些代码

    首先 在Vs中找到 工具---NuGet包管理器-----控制台。选中要安装到那个项目中,输入Install-Package AutoMapper。如果安装提示错误,请重新卸载安装NuGet。

        安装成功之后。目前是最新版本的6.1.配置AutoMapper。在项目中新建类似这样的目录。首先说说Configure文件,这个当然是配置文件了。这里推荐使用AutoMapper的静态初始化方法配置实体的映射。

    /// <summary>
        /// AutoMapper配置
        /// </summary>
        public class Configuration
        {
            public static void Configure()
            {
                Mapper.Initialize(cfg =>
                {
                    cfg.AddProfile<StoreProfile>();
                    cfg.CreateMap<Model.User,Api.Result.User>();//从Model.User映射到Api.Result.User
                  
                });
              
              
            }
        }
    View Code

    对象实体间的映射配置可以直接用map映射,也是通过配置文件的形式。

    配置文件的写法也很简单,通过配置文件的方式,便于我们很好的分类映射。比如上面的StoreProfile就是配置商城中实体间的映射的。

    public class StoreProfile:Profile
        {
           
            public StoreProfile()
            {
                CreateMap<Model.Store.Product, Api.Result.Store.Product>();//从Model.Store.Product中映射值到Api.Result.Store.Product
    } }
    

      注意这里的类要继承Profile。在构造函数中我们可以写实体间的映射。多个映射也是同样的写法。这样就完成了通过配置文件的形式进行映射。注意有个坑,如果映射的类中存在另外一个类,而这个类为在AutoMapper中进行映射是会报错。

        配置好之后怎么用呢。

       var  list=New List<Model.Store.Product>();
    var result= Mapper.Map<List<<Api.Result.Store.Product>>(list);//这样就完成了转换,得到我们api中的Product列表
    

      是不是很简单的。对于单个映射,写法更简答了,var model=Mapper.Map<转换后的类型>(转换前的实体);

        最后在Gloable.ASPX中的应用程序启动事件中加入 AutoMapper.Configuration.Configure();是不是很简单呢。目前只是对应源实体和目的实体字段名称一一对应的情况,对于复杂清空,请期待。

  • 相关阅读:
    Windbg命令学习11(.dump)
    Windbg命令学习13(ln和伪寄存器)
    Windbg命令学习15(bp bm bu bl bc ba断点)
    Windbg命令学习16(!gle和g和p)
    Windbg命令学习0 (.symfix和.cls和设置Log文件)
    API拦截方法一:PE简介
    Windbg命令学习12(.lastevent和!analyze)
    Windbg命令学习14(dv)
    Davinci DM6446开发攻略——LINUX GPIO驱动源码移植
    Centos 编译安装高版本Python方法
  • 原文地址:https://www.cnblogs.com/Playfunny/p/7018912.html
Copyright © 2011-2022 走看看