逆天之路

你以什么眼光看世界,你的世界就是什么。你不相信什么,你的世界就没有什么....

Fork me on GitHub

您现在的位置是:首页>笔记> 当前文章

AutoMapper随笔记

作者:dunitian 发布时间:2016-07-16 11:06 点击量:1584

分类: > .Net笔记 > 最热技能 > Other

  • 平台之大势何人能挡? 带着你的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.对象映射配置(ConstructUsing 和 ForMember 用的比较多)

    扩展类:

    完整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
       }

关键字词  毒逆天  原创

 

毒逆天