示例代码:

public List<OrderLineDTO> GetLinesForOrder(int orderId)
{
Mapper.CreateMap<OrderLine, OrderLineDTO>()
.ForMember(dto => dto.Item, conf => conf.MapFrom(ol => ol.Item.Name)
.ForMember(dto => dto.Name, opt => opt.ResolveUsing<NameCustomResolver>()); using (var context = new orderEntities())
{
return context.OrderLines.Where(ol => ol.OrderId == orderId)
.Project().To<OrderLineDTO>().ToList();
}
}
public class NameCustomResolver : ValueResolver<OrderLine, string>
{
protected override string ResolveCore(OrderLine source)
{
//可以加一些逻辑
return source.Name;
}
}

按照上面代码编写会抛出异常,使用 ORM 获取转换的时候(.Project().To),是不支持 ResolveUsing 的,Jimmy Bogard(AutoMapper 作者)应该扩展下 Queryable Extensions,如果不使用 .Project().To,单纯的映射转换是支持 ResolveUsing 的,使用 ResolveUsing 无非就是方便业务逻辑代码编写,我们也可以使用 MapFrom 进行实现:

public List<OrderLineDTO> GetLinesForOrder(int orderId)
{
Mapper.CreateMap<OrderLine, OrderLineDTO>()
.ForMember(dto => dto.Item, conf => conf.MapFrom(ol => ol.Item.Name)
.ForMember(dto => dto.Name, opt => opt.MapFrom(ol => NameCustomResolver(ol))); using (var context = new orderEntities())
{
return context.OrderLines.Where(ol => ol.OrderId == orderId)
.Project().To<OrderLineDTO>().ToList();
}
}
public static string NameCustomResolver(OrderLine source)
{
//可以加一些逻辑
return source.Name;
}

参考资料:

最新文章

  1. Node聊天程序实例06:server.js
  2. jQuery事件笔记
  3. 64位系统使用Access 数据库文件的彻底解决方法
  4. C语言 指针例解
  5. js 的闭包
  6. JDBC接口规范
  7. Eclipse - JDK内存配置- 环境配置
  8. Objective-C 2.0的运行时编程
  9. bzoj 2751 快速幂
  10. 【HTML】Beginner5:List
  11. scrapy使用爬取多个页面
  12. Android模拟器报&quot;Failed To Allocate memory 8&quot;错误的解决办法
  13. 在Windows Server 2008 R2 中架设 SMTP 服务器
  14. 分分钟带你玩转 Web Services【2】CXF
  15. Mac上重置mysql 5.7密码
  16. 2018,你与 i 春秋的故事都在这
  17. 极速搭建RTMP直播流服务器+webapp (vue) 简单实现直播效果
  18. python类型错误:&#39;NoneType&#39; object is not subscriptable
  19. 如何将项目连接数据库(连接mysql)
  20. 第三部分:Android 应用程序接口指南---第五节:计算---第一章 RenderScript

热门文章

  1. 关于C#的微信开发的入门记录二
  2. POJ 1163 The Triangle(简单动态规划)
  3. 嵌入式linux下如何尽快播放开机音乐
  4. 第三方框架之ThinkAndroid 学习总结(二)
  5. 2016/11/16 周三 &lt;使用LocalStore记住用户密码方法示例&gt;
  6. Ubuntu 14.04--php的安装和配置
  7. android——自定义listView
  8. 大白话讲解Promise(三)搞懂jquery中的Promise
  9. redis总结
  10. 触摸java常量池