记在WEBAPI中AutoMapper的初使用方法
很早就听说AutoMapper了。这些天一直在写api接口,发现之前的类型转换有点问题,就想到了用AutoMapper。用作DTO转换工具。 废话不多说,直接开些代码
首先 在Vs中找到 工具---NuGet包管理器-----控制台。选中要安装到那个项目中,输入Install-Package AutoMapper。如果安装提示错误,请重新卸载安装NuGet。
安装成功之后。目前是最新版本的6.1.配置AutoMapper。在项目中新建类似这样的目录
。首先说说Configure文件,这个当然是配置文件了。这里推荐使用AutoMapper的静态初始化方法配置实体的映射。
/// <summary>
/// AutoMapper配置
/// </summary>
public class Configuration
{
public static void Configure()
{
Mapper.Initialize(cfg =>
{
cfg.AddProfile<StoreProfile>();
cfg.CreateMap<Model.User,Api.Result.User>();//从Model.User映射到Api.Result.User }); }
}
对象实体间的映射配置可以直接用map映射,也是通过配置文件的形式。
配置文件的写法也很简单,通过配置文件的方式,便于我们很好的分类映射。比如上面的StoreProfile就是配置商城中实体间的映射的。
public class StoreProfile:Profile
{ public StoreProfile()
{
CreateMap<Model.Store.Product, Api.Result.Store.Product>();//从Model.Store.Product中映射值到Api.Result.Store.Product
} }
注意这里的类要继承Profile。在构造函数中我们可以写实体间的映射。多个映射也是同样的写法。这样就完成了通过配置文件的形式进行映射。注意有个坑,如果映射的类中存在另外一个类,而这个类为在AutoMapper中进行映射是会报错。
配置好之后怎么用呢。
var list=New List<Model.Store.Product>();
var result= Mapper.Map<List<<Api.Result.Store.Product>>(list);//这样就完成了转换,得到我们api中的Product列表
是不是很简单的。对于单个映射,写法更简答了,var model=Mapper.Map<转换后的类型>(转换前的实体);
最后在Gloable.ASPX中的应用程序启动事件中加入 AutoMapper.Configuration.Configure();是不是很简单呢。目前只是对应源实体和目的实体字段名称一一对应的情况,对于复杂清空,请期待。
记在WEBAPI中AutoMapper的初使用方法的更多相关文章
- 分享一个简单程序(webApi+castle+Automapper+Ef+angular)
前段时间在周末给朋友做了一个小程序,用来记录他们单位的一些调度信息(免费,无版权问题).把代码分享出来.整个程序没有做任何架构.但是麻雀虽小,用到的技术也没少.WebApi+Castle+AutoMa ...
- 重温ASP.NET WebAPI(一)初阶
重温ASP.NET WebAPI(一)初阶 前言 本文为个人对WebApi的回顾无参考价值.主要简单介绍WEB api和webapi项目的基本结构,并创建简单地webaapi项目实现CRUD操作. ...
- Autofac - MVC/WebApi中的应用
Autofac前面写了那么多篇, 其实就是为了今天这一篇, Autofac在MVC和WebApi中的应用. 一.目录结构 先看一下我的目录结构吧, 搭了个非常简单的架构, IOC(web), IBLL ...
- WebAPI中无法获取Session对象的解决办法
在MVC的WebApi中默认是没有开启Session会话支持的.需要在Global中重写Init方法来指定会话需要支持的类型 public override void Init() { PostAut ...
- webapi 中的本地登录
WebApi 身份验证方式 asp.net WebApi 中有三种身份验证方式 个人用户账户.用户可以在网站注册,也可以使用 google, facebook 等外部服务登录. 工作和学校账户.使用活 ...
- webapi 中使用 protobuf
相比json来说,好处是速度更快,带宽占用更小.其效果大致等于json+Gzip. 在webapi中使用protobuf的方法为: 引用nuget包 Install-Package protobuf- ...
- 【AspNetCore】【WebApi】扩展Webapi中的RouteConstraint中,让DateTime类型,支持时间格式化(DateTimeFormat)
扩展Webapi中的RouteConstraint中,让DateTime类型,支持时间格式化(DateTimeFormat) 一.背景 大家在使用WebApi时,会用到DateTime为参数,类似于这 ...
- 在asp.net WebAPI 中 使用Forms认证和ModelValidata(模型验证)
一.Forms认证 1.在webapi项目中启用Forms认证 Why:为什么要在WebAPI中使用Forms认证?因为其它项目使用的是Forms认证. What:什么是Forms认证?它在WebAP ...
- 在WebAPI中自动创建Controller
在MIS系统中,大部分的操作都是基本的CRUD,并且这样的Controller非常多. 为了复用代码,我们常常写一个泛型的基类. public class EntityController<T& ...
随机推荐
- Microsoft SQL Server on Linux破解 2G内存限制
首先,贴上微软官方安装方法,大家按照官方的操作就行. 微软官方安装方法 相信很多同学遇到一个问题就是: sqlservr: This program requires a machine with a ...
- linux centos 6.1 安装 redis
1, yum install redis 检测是否有redis 2,没有的话就运行:yum install epel-release 3,再执行 yum install redis
- Xshell连接虚拟机突然被拒,提示再次输入密码。。。
sudo vim /etc/ssh/sshd_config 将 # Authentication: LoginGraceTime 120 PermitRootLogin prohibit-passwo ...
- 679. 24 Game
▶ 给出四个整数,求他们是否能加减乘除括号拼凑成 24 ● 代码,11 ms,正向枚举,推广性很强(nums 可以改为任意长度,也不限于拼凑 24 这个和),缺点是只能判定是否有解,不方便输出不重复的 ...
- SQL Server数据库partition by 与ROW_NUMBER()函数使用详解[转]
关于SQL的partition by 字段的一些用法心得 先看例子: if object_id('TESTDB') is not null drop table TESTDB create table ...
- generator+列表生成式输出杨辉三角形
杨辉三角形: 1 1 1 1 2 1 1 3 3 1 1 4 ...
- javascript的构造函数和实例对象、prototype和__proto__的区别,原型对象及构造器的理解
一.前言 我们先通过代码来分别打印出实例对象.构造函数,以及修改了原型对象的构造函数,通过对比内部结构来看看他们之间的区别. //定义构造函数 function Person(name, age){ ...
- Python 使用Pandas读取Excel的学习笔记
这里介绍Python中使用Pandas读取Excel的方法 一.软件环境: OS:Win7 64位 Python 3.7 二.文件准备 1.项目结构: 2.在当前实验文件夹下建立一个Source文件夹 ...
- What's App has the Qt?
收集了我看到的使用Qt开发的应用程序或者含有Qt库的应用程序 CNTV CNTV, 一个中央电视台的视频直播软件, 从下面卸载后的残余目录树,可以看到,存在部分库使用的就是Qt的.下面的目录树,已经删 ...
- 配置yum源方法,以及失效时的处理
正常方法如下: step1: 备份原CentOS-Base.repo 文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-B ...