using System;
using System.Collections.Generic;
using System.Linq;
using AutoMapper;
using System.Collections; namespace DanaZhangCms.Domain.AutoMapper
{
public static class AutoMapperExtension
{ /// <summary>
/// 集合对集合
/// </summary>
/// <typeparam name="TResult"></typeparam>
/// <param name="self"></param>
/// <returns></returns>
public static List<TResult> MapTo<TResult>(this IEnumerable self)
{
if (self == null) throw new ArgumentNullException();
return (List<TResult>)Mapper.Map(self, self.GetType(), typeof(List<TResult>));
} /// <summary>
/// 对象对对象
/// </summary>
/// <typeparam name="TResult"></typeparam>
/// <param name="self"></param>
/// <returns></returns>
public static TResult MapTo<TResult>(this object self)
{
if (self == null) throw new ArgumentNullException();
return (TResult)Mapper.Map(self, self.GetType(), typeof(TResult));
} ///// <summary>
///// 自动Map
///// <para>此方式极易覆盖预期的【已Map】的设置,调用前请确定映射从未被创建</para>
///// </summary>
///// <typeparam name="TResult"></typeparam>
///// <param name="self"></param>
///// <returns></returns>
//[Obsolete("此方式极易覆盖预期的【已Map】的设置,调用前请确定映射从未被创建", false)]
//public static TResult AutoMapTo<TResult>(this object self)
//{
// if (self == null) throw new ArgumentNullException();
// Mapper.CreateMap(self.GetType(), typeof(TResult));
// return (TResult)Mapper.Map(self, self.GetType(), typeof(TResult));
//} /// <summary>
///
/// </summary>
/// <typeparam name="TSource"></typeparam>
/// <typeparam name="TResult"></typeparam>
/// <param name="result"></param>
/// <param name="source"></param>
/// <returns></returns>
public static void MapFrom<TSource, TResult>(this TResult result, TSource source)
{
result = Mapper.Map<TSource, TResult>(source, result);
} }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using AutoMapper;
using DanaZhangCms.Domain.ViewModel;
using DanaZhangCms.Domain.DbModels;
using DanaZhangCms.DbModels; namespace DanaZhangCms.Domain.AutoMapper
{
public class Configuration
{
public static void RegisterConfigure()
{
#region
Mapper.Initialize(
cfg =>
{
cfg.CreateMap<ChannelViewModel, Channel>();
cfg.CreateMap<Channel, ChannelViewModel>(); cfg.CreateMap<ArticleCategoryViewModel, ArticleCategory>();
cfg.CreateMap<ArticleCategory, ArticleCategoryViewModel>(); cfg.CreateMap<ArticleViewModel, Article>();
cfg.CreateMap<Article, ArticleViewModel>(); cfg.CreateMap<Banner, BannerViewModel>();
cfg.CreateMap<BannerViewModel, Banner>();
}
);
#endregion
}
}
}
DanaZhangCms.Domain.AutoMapper.Configuration.RegisterConfigure();

AutoMapperExtension的更多相关文章

  1. EF架构~对AutoMapper实体映射的扩展

    回到目录 AutoMapper在之前我曾经介绍过,今天主要是把它作一下扩展,因为它的调用太麻烦了,呵呵,扩展之后,用着还可以,感觉.net3.5之后,有了扩展方法这个东西,在程序开发速度及表现力上都有 ...

  2. .NET之AutoMapper对象映射工具运用

    AutoMapper对象映射工具:主要是将某一个实体转成另一个实体. 1.引用NuGet包;搜索:AutoMapper 2.创建实体类 using System; using System.Colle ...

  3. Automapper实现自动映射

    出于安全考虑,在后台与前台进行数据传输时,往往不会直接传输实体模型,而是使用Dto(Data transfer object 数据传输对象),这样在后台往前台传递数据时可以省略不必要的信息,只保留必要 ...

  4. C# AutoMapper的简单扩展

    AutoMapper可以很方便的将一个实体的属性值转化给另一个对象.这个功能在我们日常的编码中经常会遇到.我将AutoMapper的一些基本映射功能做成扩展方法,在编码中更方便使用. using Sy ...

  5. Automapper 实现自动映射

    出于安全考虑,在后台与前台进行数据传输时,往往不会直接传输实体模型,而是使用Dto(Data transfer object 数据传输对象),这样在后台往前台传递数据时可以省略不必要的信息,只保留必要 ...

  6. OOM框架AutoMapper基本使用(2)

    出于安全考虑,在后台与前台进行数据传输时,往往不会直接传输实体模型,而是使用Dto(Data transfer object 数据传输对象),这样在后台往前台传递数据时可以省略不必要的信息,只保留必要 ...

  7. 在 ASP.NET Core 项目中使用 AutoMapper 进行实体映射

    一.前言 在实际项目开发过程中,我们使用到的各种 ORM 组件都可以很便捷的将我们获取到的数据绑定到对应的 List<T> 集合中,因为我们最终想要在页面上展示的数据与数据库实体类之间可能 ...

  8. netcore 2.2 封装 AutoMapper

    在上篇中我们通过创建一个类并继承autoMapper的Profile类 public class Mappings : Profile { public Mappings() { CreateMap& ...

  9. AutoMapper扩展帮助类

    /// <summary> /// AutoMapper扩展帮助类 /// </summary> public static class AutoMapperExtension ...

随机推荐

  1. python 全栈开发,Day61(库的操作,表的操作,数据类型,数据类型(2),完整性约束)

    昨日内容回顾 一.回顾 定义:mysql就是一个基于socket编写的C / S架构的软件 包含: ---服务端软件 - socket服务端 - 本地文件操作 - 解析指令(mysql语句) ---客 ...

  2. Highcharts实现图形报表(我主要实现javaweb开发的图形报表)

    官网网址:https://www.hcharts.cn/ 中文版的(参考起来方便,你懂的.):http://www.mamicode.com/info-detail-446038.html 网上已经有 ...

  3. sed & awk常用正则表达式

    正则表达式元字符 正则表达式中有两种基本元素: 以字面值或变量表示的值(如.代表任意单个字符). 操作符(如*代表将前面的字符重复任意次). 元字符汇总 特殊字符 用途 . 匹配除换行符以外的任意单个 ...

  4. jquery中方法扩展 ($.fn & $.extend) 学习笔记

    A.$.fn 1.$.fn.method() 函数为jQuery对象扩展一个属性和方法(主要用于扩展方法) :method 为自定义方法名 ($.fn 等效 $.prototype) $.fn.bor ...

  5. BZOJ1853 [Scoi2010]幸运数字 容斥原理

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1853 题意概括 求一个区间范围内,近似幸运数字的个数. 定义: 幸运数字:仅由6或者8组成的数字. ...

  6. BZOJ4989 [Usaco2017 Feb]Why Did the Cow Cross the Road 树状数组 逆序对

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ4989 题意概括 一条马路的两边分别对应的序列A.B,长度为n,两序列为1到n的全排列.当Ai=Bj ...

  7. Ubuntu 之 atom 安装以及 常用配置

    安装方式如下: 打开终端,使用以下命令安装: sudo add-apt-repository ppa:webupd8team/atom sudo apt-get update sudo apt-get ...

  8. 附004.Docker Compose环境变量说明

    一 环境变量概述 Compose支持在docker-compose执行命令的文件夹中,名为.env的环境变量配置文件声明默认环境变量. 二 定义变量 2.1 语法规则 Compose建议env文件中的 ...

  9. Java内存管理-程序运行过程(一)

    勿在流沙住高台,出来混迟早要还的. 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 相信在做Java开发的伙伴一定知道 JVM(Java Virtual Machine( ...

  10. linux下构建MysqlCluster集群,NDB搜索引擎

    搭建管理节点 Ndb搜索引擎对于服务器的内存要求比较高,因为所有数据节点的数据,以及索引,事务等等都需要加载进内存中. 下载 mysql-cluster-gpl-7.6.8-linux-glibc2. ...