AutoMapper使用说明

1.引用命名空间

using AutoMapper;
using AutoMapper.Mappers;

2.实体类和dto

 public class Order
{ public int orderid { get; set; }
public decimal amount { get; set; }
public string address { get; set; }
}
 public class OrderDto
{
public int orderid { get; set; }
public decimal amount { get; set; }
public string address { get; set; }
}

3.controller里的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using AutoMapper;
using AutoMapper.Mappers; using AutoMaperTest.Models.Entity;
using AutoMaperTest.Models.Dto; namespace AutoMaperTest.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/ public ActionResult Index()
{
Mapper.CreateMap<Models.Entity.Order,Models.Dto.OrderDto>(); //初始化 Order o = new Order(){ orderid=,amount=,address="beijing" }; OrderDto od=Mapper.Map<OrderDto>(o); //开始映射
Response.Write("entity->dto:"+od.address); OrderDto odnew = new OrderDto { orderid=,amount=,address="china" }; Order onew = Mapper.Map<Order>(odnew); Response.Write("dto->entity:"+onew.address); List<Order> lt = new List<Order>();
lt.Add(o); List<OrderDto> ltod = new List<OrderDto>(); lt.Each(temp =>
{
ltod.Add(Mapper.Map<OrderDto>(temp)); }); Response.Write("</br>this is list<>映射:" + ltod[].address); return View();
} }
}

方法2:程序启动时 初始化映射

1.添加一个myprofile 类,让其继承:Profile  ,重写方法

protected override void Configure()
        {
            CreateMap<Models.Entity.Order, Models.Dto.OrderDto>(); //Tsource,Tdestin
            CreateMap<Models.Dto.OrderDto, Models.Entity.Order>();
        }

2.添加一个 Configuration 类

编写一个静态方法,以便在application_start  里 注册该方法

public static void ConfigureNew()
        {
            Mapper.Initialize(cfg =>
            {
                cfg.AddProfile<Profiles.OrderProfile>();
            //   cfg.AddProfile<Profiles.OrderDtoProfile>();
              
            });
        }

在 global.ascx 里 注册   AutoMaperTest.AutoMaper.Configuration.ConfigureNew(); //初始化

参考:http://www.cnblogs.com/youring2/p/automapper.html

本例源代码下载

上一篇:sql语法图


下一篇:Firefox driver 那些事~