可查询扩展 (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
该主题是一个高级主题, 待二刷.