jk's notes
  • 可查询扩展 (Queryable Extensions) (待二刷)

可查询扩展 (Queryable Extensions) (待二刷)

逻辑上就是在查询的时候, 从数据库数据到对象直接进行 映射.

逻辑上就是定义一个投影, 并将投影方法放在 IQueryable<T> 的扩展上. 使用它来代替 LINQ 中的 Select 方法.

定义配置示例:

var configuration = new MapperConfiguration(cfg =>
    cfg.CreateProjection<OrderLine, OrderLineDTO>()
    .ForMember(dto => dto.Item, conf => conf.MapFrom(ol => ol.Item.Name)));

使用示例:

context.OrderLines.Where(ol => ol.OrderId == orderId)
             .ProjectTo<OrderLineDTO>(configuration).ToList();

注意:

  • ProjectTo 方法必须最后调用.
  • 所有的类型转换需要在配置时手动定义好.

文档 https://docs.automapper.org/en/stable/Queryable-Extensions.html

该主题是一个高级主题, 待二刷.

Last Updated:
Contributors: jk