Automapper 系列之Expression(一)

Expression

一、安装扩展包

如果需要进行表达式目录树从一个对象转换为其他对象,需要安装另外的独立的包。

  • 使用Package Manager安装
Install-Package AutoMapper.Extensions.ExpressionMapping -Version 4.1.2
  • 使用NuGet安装

搜索AutoMapper.Extensions.ExpressionMapping安装最新版本即可

  • 使用.Net CLI安装
dotnet add package AutoMapper.Extensions.ExpressionMapping --version 4.1.2

二、表达式目录树转换方法一

public class OrderLine
{
  public int Id { get; set; }
  public int OrderId { get; set; }
  public Item Item { get; set; }
  public decimal Quantity { get; set; }
}

public class Item
{
  public int Id { get; set; }
  public string Name { get; set; }
}

public class OrderLineDTO
{
  public int Id { get; set; }
  public int OrderId { get; set; }
  public string Item { get; set; }
  public decimal Quantity { get; set; }
}

var configuration = new MapperConfiguration(cfg =>
{
  cfg.AddExpressionMapping();
  
  cfg.CreateMap<OrderLine, OrderLineDTO>()
    .ForMember(dto => dto.Item, conf => conf.MapFrom(ol => ol.Item.Name));
  cfg.CreateMap<OrderLineDTO, OrderLine>()
    .ForMember(ol => ol.Item, conf => conf.MapFrom(dto => dto));
  cfg.CreateMap<OrderLineDTO, Item>()
    .ForMember(i => i.Name, conf => conf.MapFrom(dto => dto.Item));
});

三、表达式目录树转换方法二

使用MapExpression对表达式目录树进行转换

Expression<Func<GarageModel, bool>> filter = m => m.Color == garage.Color;
var mappedfilter = mapper.MapExpression<Expression<Func<Garage, bool>>>(filter);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值