AutoMapper库

是什么?

简单来说就是将一个对象映射到另一个对象的代码。 摆脱了繁琐的赋值过程 (最常见也就是Model -——ViewModel)

怎么安装?

在NuGet中直接输入AutoMapper 去下载

怎么使用?

这里我定义了两个类 ShopingInfoShopingInfoViewModel

public class ShopingInfo:EntityBase
{
	public string ShopingName { get; set; }
	public int ShopingCount { get; set; }
	public decimal ShopingPric { get; set; }
	public int Stock { get; set; }
	public int Volumeofvolume { get; set; }
	public int ShopingTypeId { get; set; }
	public virtual ShopingType ShopingType { get; set; }
}
public class ShopingInfoViewModel
{
	public int ID { get; set; }
	public string ShopingName { get; set; }
	public int ShopingCount { get; set; }
	public decimal ShopingPric { get; set; }
	public int Stock { get; set; } 
	public int Volumeofvolume { get; set; }
	public string ShopingTypeName { get; set; }
}

1、需要用到命名空间

using AutoMapper;

2、然后 专门建了一个类用来存放这些映射关系SourceProfile 并且继承了 Profile

public class SourceProfile : Profile
{
	public SourceProfile()
	{
		base.CreateMap<ShopingInfo, ShopingInfoViewModel>();
	}
}

如果我们发现两个类中有字段名不一致。
例如 我把shopingInfoViewModel 中的 ShopingName 改为 Name 那你可以这样写

 public class SourceProfile : Profile
    {
       public SourceProfile()
        {
           base.CreateMap<ShopingInfo, ShopingInfoViewModel>();

          // base.CreateMap<ShopingInfo, ShopingInfoViewModel>().ForMember(x => x.Name,
          //      q => { q.MapFrom(z => z.ShopingName);
          //  });
        }
    }

建了个中间类用来封装上面的代码

public class AutoMapper
{
	public static void Start()
	{
		Mapper.Initialize(x =>{
                x.AddProfile<SourceProfile>();
            });
        }
    }

然后就在全局类Global中使得启动初始化就去加载加入下面这句代码

AutoMapper.Start()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值