.Net Mvc AutoMapper簡單使用

eedc發表於2017-05-15

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

 

相關文章