zoukankan      html  css  js  c++  java
  • Automapper问题记录

    在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())

      正常:

      

      否则:

  • 相关阅读:
    电脑常用快捷键
    k8s node 系统参数调整
    docker 制作镜像并上传
    php服务部署安装
    安装 Kuboard v2
    keepalive配置
    elasticsearch的segment详解
    grafana模板
    jenkins启动
    kubernetes 中文文档
  • 原文地址:https://www.cnblogs.com/ceci/p/10074880.html
Copyright © 2011-2022 走看看