在Automapper使用中会碰到一些未能映射或者错误的问题,这些问题可能会经常忘记如何处理,想到一些就记录一些:

  • 映射值有时为空又不报错的情况

  这很可能是由于目标类中的部分属性有问题导致的,最简单的方式为使用排除法,将可能有问题的属性Ignore掉。嵌套类型也可以这样排查。

  • ProjectTo时,ForMember不可使用延迟加载

  以下为例,不加ToList()则Actions的值是延迟映射,结果是无法正确获取的,或者会导致获取时针对CommonAction生成大量SQL语句

CreateMap<View, ViewDto>()
.ForMember(d => d.ParentName, s => s.MapFrom(x => x.ParentID.HasValue ? x.ParentView.Name : null))
.ForMember(d => d.ParentUrl, s => s.MapFrom(x => x.ParentID.HasValue ? x.ParentView.URL : null))
.ForMember(d => d.ShowInMenu, s => s.MapFrom(x => x.Show))
.ForMember(d => d.Actions, s => s.MapFrom(x => x.ViewAction.Select(ca => ca.CommonAction.Name).OrderBy(ca => ca).ToList()))
.ForMember(d => d.Level, s => s.Ignore())
.ForMember(d => d.IsLeaf, s => s.Ignore())
.ForMember(d => d.Icon, s => s.Ignore())

  正常:

  

  否则:

Automapper问题记录的更多相关文章

  1. 【.NET】AutoMapper学习记录

    在两个不同的类型对象之间传输数据,通常我们会用DTOs(数据传输对象),AutoMapper就是将一个对象自动转换为另一个对象的技术 背景 一些orm框架,在用到Entity的时候有一些开源代码用到了 ...

  2. 【知识笔记】Debugging

    一.启动调试出现 无法启动程序 当前状态中是非法 VS工具--选项--调试--常规--启用asp.net的JavaScript调试(chrome和ie)去掉勾选 二.web.config中<cu ...

  3. AutoMapper的使用在NET core中的使用记录

    关于AutoMapper的用处以及主要便利指出请参考官方文档,本文章仅记录自己使用的过程及代码: 安装 在项目中涉及到的类包括:Account,AccountCondition,AutoMapperC ...

  4. 【记录】AutoMapper Project To OrderBy Skip Take 正确写法

    AutoMapper:Queryable Extensions 示例代码: using (var context = new orderEntities()) { return context.Ord ...

  5. 【记录】AutoMapper Project To not support ResolveUsing

    示例代码: public List<OrderLineDTO> GetLinesForOrder(int orderId) { Mapper.CreateMap<OrderLine, ...

  6. ASP.NET Core 1.0 开发记录

    官方资料: https://github.com/dotnet/core https://docs.microsoft.com/en-us/aspnet/core https://docs.micro ...

  7. ASP.NET 5 RC1 升级 ASP.NET Core 1.0 RC2 记录

    升级文档: Migrating from DNX to .NET Core Migrating from ASP.NET 5 RC1 to ASP.NET Core 1.0 RC2 Migrating ...

  8. 【AutoMapper官方文档】DTO与Domin Model相互转换(下)

    写在前面 AutoMapper目录: [AutoMapper官方文档]DTO与Domin Model相互转换(上) [AutoMapper官方文档]DTO与Domin Model相互转换(中) [Au ...

  9. 疑难杂症——EF+Automapper引发的查询效率问题解析

    前言:前面总结了一些WebApi里面常见问题的解决方案,本来打算来分享下oData+WebApi的使用方式的,奈何被工作所困,只能将此往后推了.今天先来看看EF和AutoMapper联合使用的一个问题 ...

随机推荐

  1. Python 实现WC功能

    GitHub仓库:https://github.com/15crmor/PAC 项目要求 基本要求 -c 统计文件字符数 (实现) -w 统计文件词数 (实现) -l 统计文件行数(实现) 扩展功能 ...

  2. Window 64bit环境搭建Web Starter Kit

    最近在学习https://developers.google.com/web/fundamentals/这里的内容,其中就有一部分是安装Web Starter Kit的教程,我总结一下自己的安装过程. ...

  3. EBS MOAC相关

    http://blog.csdn.net/rfb0204421/article/details/9306929 支持MOAC功能的Form开发步骤 分类: FORM2013-07-12 10:01 1 ...

  4. 什么是fortran语言之fortran语言入门

    Fortran源自于“公式翻译”(英语:FormulaTranslation)的缩写,是一种编程语言.它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域.FORTRAN语言以其特 ...

  5. [5.19 线下活动]Docker Meetup杭州站—拥抱Kubernetes,容器深度实践

    对本次线下活动感兴趣的朋友,欢迎点击此处报名,领取免费票. 今年3月,Docker刚刚过完5岁生日,五年期间,Docker也逐渐在技术和实践方面趋于成熟,更是在去年年底主动拥抱Kubernetes. ...

  6. 网易云安全DDoS高防全新上线 ,游戏防护实力领先

    本文由  网易云发布.       10月24日,网易云安全(易盾)正式上线DDoS高防解决方案[点击查看].基于网易20年网络安全防护经验,网易云安全(易盾)DDoS高防可提供1T超大防护带宽,拥有 ...

  7. python web开发c6——阿里云上ubuntu+flask+gunicorn+nginx服务器部署(一)简单测试

    简述 Nginx在服务器部署中的作用 请求通过Nginx实现反向代理,将请求提交给代理服务器.本文中只用了一台服务器,所以是代理到本机. gunicorn的作用 作为服务器代码的容器.接收Nginx的 ...

  8. 879. Profitable Schemes

    There are G people in a gang, and a list of various crimes they could commit. The i-th crime generat ...

  9. Mac 设置终端中使用 sublime 打开文件

    在Mac下用终端创建文件等比较方便,但如果配合Sublime用,最好是可以直接在终端中输入命令就可以用Sublime打开指定文件或文件夹. #检查用户目录下有没有bin目录,如里没有就创建一个(目的是 ...

  10. 基于unoconv的在线office预览

    这几天在搞在线文档预览,网上查了几种方案, 第一种:使用google的在线预览 -> 国内被Q,pass 第二种:使用第三方的,比如:永中dcs -> 要钱,pass 第三种:先转换为pd ...