很早就听说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的初使用方法的更多相关文章

  1. 分享一个简单程序(webApi+castle+Automapper+Ef+angular)

    前段时间在周末给朋友做了一个小程序,用来记录他们单位的一些调度信息(免费,无版权问题).把代码分享出来.整个程序没有做任何架构.但是麻雀虽小,用到的技术也没少.WebApi+Castle+AutoMa ...

  2. 重温ASP.NET WebAPI(一)初阶

    重温ASP.NET WebAPI(一)初阶   前言 本文为个人对WebApi的回顾无参考价值.主要简单介绍WEB api和webapi项目的基本结构,并创建简单地webaapi项目实现CRUD操作. ...

  3. Autofac - MVC/WebApi中的应用

    Autofac前面写了那么多篇, 其实就是为了今天这一篇, Autofac在MVC和WebApi中的应用. 一.目录结构 先看一下我的目录结构吧, 搭了个非常简单的架构, IOC(web), IBLL ...

  4. WebAPI中无法获取Session对象的解决办法

    在MVC的WebApi中默认是没有开启Session会话支持的.需要在Global中重写Init方法来指定会话需要支持的类型 public override void Init() { PostAut ...

  5. webapi 中的本地登录

    WebApi 身份验证方式 asp.net WebApi 中有三种身份验证方式 个人用户账户.用户可以在网站注册,也可以使用 google, facebook 等外部服务登录. 工作和学校账户.使用活 ...

  6. webapi 中使用 protobuf

    相比json来说,好处是速度更快,带宽占用更小.其效果大致等于json+Gzip. 在webapi中使用protobuf的方法为: 引用nuget包 Install-Package protobuf- ...

  7. 【AspNetCore】【WebApi】扩展Webapi中的RouteConstraint中,让DateTime类型,支持时间格式化(DateTimeFormat)

    扩展Webapi中的RouteConstraint中,让DateTime类型,支持时间格式化(DateTimeFormat) 一.背景 大家在使用WebApi时,会用到DateTime为参数,类似于这 ...

  8. 在asp.net WebAPI 中 使用Forms认证和ModelValidata(模型验证)

    一.Forms认证 1.在webapi项目中启用Forms认证 Why:为什么要在WebAPI中使用Forms认证?因为其它项目使用的是Forms认证. What:什么是Forms认证?它在WebAP ...

  9. 在WebAPI中自动创建Controller

    在MIS系统中,大部分的操作都是基本的CRUD,并且这样的Controller非常多. 为了复用代码,我们常常写一个泛型的基类. public class EntityController<T& ...

随机推荐

  1. 九jQuery源码解析之.each()

    jQuery中存在两个each方法都是用于遍历的, 一个是对jQuery对象集合使用.each(),用于遍历这个集合; .each(function(index,element)) 还有一个是扩展jQ ...

  2. Solr中Facet用法和Group用法

    Group分组划分结果,返回的是分组结果: Facet分组统计,侧重统计,返回的是分组后的数量: 一.Group用法: //组查询基础配置params.set(GroupParams.GROUP, & ...

  3. Windows环境下为PHP5.6安装redis扩展和memcached扩展

    一.php安装redis扩展   1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本       2.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2 ...

  4. 规则引擎以及blaze 规则库的集成初探之二——JSR94 的规则引擎API和实现

    http://jefferson.iteye.com/blog/67839 规则引擎以及blaze 规则库的集成初探之二——JSR94 的规则引擎API和实现

  5. 迷你MVVM框架 avalonjs 0.91发布

    本版本修了一些BUG与不合理的地方,感谢感谢ztz, 民工精髓, 姚立, qiangtou等人指正. 处理AMD加载 旧式IE下移除script节点内存泄漏的问题 fix firefox 全系列vis ...

  6. swagger2 注解整体说明

    @Api:用在请求的类上,表示对类的说明 tags="说明该类的作用,可以在UI界面上看到的注解" value="该参数没什么意义,在UI界面上也看到,所以不需要配置&q ...

  7. 在Eclipse中创建Maven版的Web工程

    步骤: 1.第一步 2.第二步 3.第三步 4.第四步 选中项目,右键在弹出的对话框中选择properties 5.第五步 6.第六步

  8. centos 安装hue 4.0

    Hue是Cloudera开源的一个Hadoop UI,由Cloudera Desktop演化而来.面向用户提供方便的UI用于平时的Hadoop操作中.Apache Ambari面向的是管理员,用于安装 ...

  9. Excel VBA入门(九)操作工作薄

    虽然我前面讲过,在VBA中操作工作薄并不是件明智的事,但有些时候,还是避免不了要这么做.绝大多数情况下,我们要做的是获取到某个工作薄对象,并以此来获得其中的工作表对象,然后再对工作表中的数据进行处理. ...

  10. 单源最短路:Bellman-Ford算法 及 证明

    描述: 求图中某一点到其他任一点的最短距离. 操作: 1. 初始化 结果保存在一个dist数组里,源点的结果初始化为0,其他初始化为无穷大(如INT32_MAX). 2. 计算: 两重for循环,第一 ...