zoukankan      html  css  js  c++  java
  • AutoMapper随笔记

    平台之大势何人能挡? 带着你的Net飞奔吧! http://www.cnblogs.com/dunitian/p/4822808.html#skill

    先看效果:(完整Demo:https://github.com/dunitian/LoTCodeBase/tree/master/NetCode/3.常用技能/05.AutoMapper

    原来是这么干的:

    有了AutoMapper是这么干的:

    ————————————————————

    1.AutoMapper初始化

    2.配置文件

    3.对象映射配置(ConstructUsingForMember 用的比较多)

    扩展类:

    完整Demo:https://github.com/dunitian/LoTCodeBase/tree/master/NetCode/3.常用技能/05.AutoMapper

    把扩展类贴一下吧:

     /// <summary>
        /// AutoMapper扩展类
        /// </summary>
        public static class AutoMapperExt
        {
            #region 由AutoMapper创建目标对象
            /// <summary>
            ///  类型映射-由AutoMapper创建目标对象
            /// </summary>
            public static T MapTo<T>(this object obj)
            {
                if (obj == null) return default(T);
                return Mapper.Map<T>(obj);
            }
    
            /// <summary>
            /// 集合列表类型映射-由AutoMapper创建目标对象
            /// </summary>
            public static IEnumerable<TDestination> MapToList<TDestination>(this IEnumerable source)
            {
                if (source == null) return new List<TDestination>();
                return Mapper.Map<IEnumerable<TDestination>>(source);
            } 
            #endregion
    
            #region 把源对象中的属性值合并/覆盖到目标对象
            /// <summary>
            /// 类型映射-把源对象中的属性值合并/覆盖到目标对象
            /// </summary>
            public static TDestination MapTo<TSource, TDestination>(this TSource source, TDestination destination) where TSource : class where TDestination : class
            {
                if (source == null) return destination;
                return Mapper.Map(source, destination);
            }
    
            /// <summary>
            /// 集合列表类型映射-把源对象中的属性值合并/覆盖到目标对象
            /// </summary>
            public static IEnumerable<TDestination> MapToList<TSource, TDestination>(this IEnumerable<TSource> source, IEnumerable<TDestination> destination)
            {
                return Mapper.Map(source, destination);
            }
            #endregion
    
            #region DataReader映射
            /// <summary>
            /// DataReader映射
            /// </summary>
            public static IEnumerable<T> DataReaderMapTo<T>(this System.Data.IDataReader reader)
            {
                Mapper.Initialize(cfg => cfg.CreateMap<System.Data.IDataReader, IEnumerable<T>>());
                return Mapper.Map<System.Data.IDataReader, IEnumerable<T>>(reader);
            } 
            #endregion
        }
    

      

  • 相关阅读:
    数据库的三大范式
    mysql中变量的定义
    java实现用两个栈实现队列
    java实现替换空格
    java实现二维数组中查找
    struts2核心配置之Action
    struts2核心配置之struts.xml
    初识struts2
    $.ajax()参数详解
    百度Map-JSAPI-覆盖物范围查询标记
  • 原文地址:https://www.cnblogs.com/dunitian/p/5606276.html
Copyright © 2011-2022 走看看