.Net Mvc AutoMapper简单使用

1、安装automapper nuget包。

2、新建一个AutoMapper配置类并实现一个静态配置方法。

方法一、

using AutoMapper;
using AutoMapperTest.Models;

namespace AutoMapperTest.App_Start
{
    public class AutoMapperConfig
    {
        public static void Config()
        {
            Mapper.Initialize(cfg =>
            {
                cfg.CreateMap<StudentEntity, StudentOutput>();
            });
        }
    }
}

方法二、AddProfile方式

using AutoMapper;
using AutoMapperTest.Models;

namespace AutoMapperTest.App_Start
{
    public class AutoMapperConfig
    {
        public static void Config()
        {
            Mapper.Initialize(cfg =>
            {
                cfg.AddProfile<MapperProfile>();
            });
        }
    }
}
using AutoMapper;
using AutoMapperTest.Models;

namespace AutoMapperTest.App_Start
{
    public class MapperProfile : Profile
    {
        public MapperProfile()
        {
            CreateMap<StudentEntity, StudentOutput>();
        }
    }
}

 

 

3、在全局配置Global.asax中引用配置方法。

using AutoMapperTest.App_Start;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;

namespace AutoMapperTest
{
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AutoMapperConfig.Config();
        }
    }
}

4、具体使用

        public JsonResult GetMapper()
        {
            //实例化实体List
            List<StudentEntity> StudentList = new List<StudentEntity>();
            //模拟数据
            StudentList.Add(new StudentEntity
            {
                Id = 1,
                Age = 12,
                Gander = "boy",
                Name = "WangZeLing",
                Say = "Only the paranoid survive",
                Score = 99M
            });
            //AuotMapper具体使用方法 将List<StudentOutput>转换为List<StudentOutput>
            List<StudentOutput> Output = AutoMapper.Mapper.Map<List<StudentOutput>>(StudentList);
            return Json(Output, JsonRequestBehavior.AllowGet);
        }

附:实体类、Output类

    public class StudentEntity
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
        public string Gander { get; set; }
        public decimal Score { get; set; }
        public string Say { get; set; }
    }
    public class StudentOutput
    {
        public string Name { get; set; }
        public decimal Score { get; set; }
        public string Say { get; set; }
    }

附:AutoMapper GitHub 

https://github.com/AutoMapper/AutoMapper

 

posted @ 2017-05-15 18:30  eedc  阅读(3491)  评论(0编辑  收藏  举报