automapper的简单用法
AutoMapper对象转换方面(Object-Object Mapping)对象映射工具,实现对象和对象之间的转化。主要应用在项目的dto,model,entity或viewmodel之间转换,其实AutoMapper涵盖所有对象(Object)之间的转换。
下面演示他的基本用法:
public class Customer
{
public Guid Id { get; set; } public string Number { get; set; }
public string Name { get; set; }
public DateTime RegDate { get; set; }
public string Note { get; set; }
public string Address { get; set; } public string CategoryID { get; set; }
} public class Product
{
public string Id { get; set; }
public string Number { get; set; }
public string Name { get; set; }
public decimal Price { get; set; } }
public class Order
{
public Customer Customer { get; set; }
public Product Product { get; set; }
public decimal Qty { get; set; } public decimal Getamount()
{
return Product.Price*Qty;
}
}
先建立这几个类,order、customer、product显示订单业务,这些放到领域层。在前台表现层时,可能不需要order类这么复杂,只要orderDto这个简单的类就行了。
public class OrderDto
{
public string CustomerName { get; set; }
public string Address { get; set; }
public decimal Amount { get; set; }
}
这就需要把order的数据转到orderdto对象中。使用automapper进行转换代码如下
public void Test()
{
//先建立实例化对象
Customer _customer = new Customer()
{
Id = new Guid("E8C1D91F-7076-489B-BAA8-8F563BA07402"),
Number = "01.001",
Name = "明康医院",
RegDate = DateTime.Now,
Note = "sadfasdfsdafsdaf",
Address = "XX省sss市CCC路32号门诊楼对面",
CategoryID = ""
};
Product _product = new Product() {Id = "", Name = "中国式局大全", Number = "", Price = 65.8m}; Order _odr = new Order(){ Customer = _customer,Product = _product,Qty = 6765m}; // 配置 AutoMapper
Mapper.CreateMap<Order,OrderDto>()
.ForMember(dest => dest.CustomerName, opt => opt.MapFrom(src => src.Customer.Name))//定义映射规则
.ForMember(dest => dest.Address, opt => opt.MapFrom(src => src.Customer.Address))//定义映射规则
.ForMember(dest => dest.Amount, opt => opt.MapFrom(src => src.Getamount()));//定义映射规则 // 执行 mapping
OrderDto form = Mapper.Map<Order, OrderDto>(_odr); Console.WriteLine("客户名称:"+form.CustomerName);
Console.WriteLine("客户地址:" + form.Address);
Console.WriteLine("总金额:" + form.Amount); }
使用automapper先建立映射关系,在执行映射。
automapper的简单用法的更多相关文章
- CATransition(os开发之画面切换) 的简单用法
CATransition 的简单用法 //引进CATransition 时要添加包“QuartzCore.framework”,然后引进“#import <QuartzCore/QuartzCo ...
- jquery.validate.js 表单验证简单用法
引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...
- NSCharacterSet 简单用法
NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...
- [转]Valgrind简单用法
[转]Valgrind简单用法 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html Valgrind的主要作者Julian S ...
- Oracle的substr函数简单用法
substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串 subst ...
- Ext.Net学习笔记19:Ext.Net FormPanel 简单用法
Ext.Net学习笔记19:Ext.Net FormPanel 简单用法 FormPanel是一个常用的控件,Ext.Net中的FormPanel控件同样具有非常丰富的功能,在接下来的笔记中我们将一起 ...
- TransactionScope简单用法
记录TransactionScope简单用法,示例如下: void Test() { using (TransactionScope scope = new TransactionScope()) { ...
- WPF之Treeview控件简单用法
TreeView:表示显示在树结构中分层数据具有项目可展开和折叠的控件 TreeView 的内容是可以包含丰富内容的 TreeViewItem 控件,如 Button 和 Image 控件.TreeV ...
- listActivity和ExpandableListActivity的简单用法
http://www.cnblogs.com/limingblogs/archive/2011/10/09/2204866.html 今天自己简单的总结了listActivity和Expandable ...
随机推荐
- Golang在windows下交叉编译linux程序
1.下载相关程序. Golang下载:http://www.golangtc.com/download Git下载:http://git-scm.com/download/ TDM-GCC下载:htt ...
- Unity Shader:Blur
花了一晚上的时间终于看懂Image Effect中的Blur,其实很简单,就是一下子没有理解到. 原理:使用两个一维[1*7]的高斯滤波模板,一个用在x方向,另一个用在y方向.高斯滤波有模糊的效果. ...
- kubernetes学习笔记1
安装篇 Downloading Kubernetes You can either build a release from sources or download a pre-built relea ...
- Django中级篇(下)
中间件 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法. MIDDLEWA ...
- 【转】Java的接口和抽象类的区别
1. 抽象类和接口的区别 所谓抽象类是用来表征我们在对问题领域进行分析.设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象:所谓接口,相当于电源插座,可插入构件相当于 ...
- linux中django+apache配置
配置apahce通过mod_wsgi访问django代码,最终通过版本说明: Apache/2.0.63 (Unix) DAV/2 mod_wsgi/3.5 Python/2.6.6 下面讲述一波三折 ...
- 【Nginx 3】FTP远程文件下载
导读:在做项目的过程中,当用户发起申诉时,要上传一个申诉材料.然后后台运营人员在处理申诉时,可能会需要下载申诉材料,进行参考.本篇博客呢,就介绍一下文件的下载! 一.代码实现 <span sty ...
- VC与JavaScript交互(四) --- WebBrowser或CHtmlView中轻松屏蔽脚本错误(JavaScript)
1.什么是javascript脚本错误 1.1 概述 JavaScript脚本错误包含“运行时错误”和“语法错误”. 1.2 JavaScript“语法错误” JavaScript语法错误 ...
- SVN更新、清理乱码解决
我的电脑信息 win7 64bit svn版本: 先介绍一种最简单的方法,一般都会有效,疑难杂症请用第二种 方法一: 将前面6项全部选上--> [确定] 无效请仔细看下面方法二方法详解 方法二: ...
- Android IOS WebRTC 音视频开发总结(五二)-- 亲,咱一起采访webrtc大会的各路专家
本文最早发自我的微信公众号,咱一起采访webrtc大会的各路专家,文章来自博客园RTC.Blacker,支持原创,转载必须说明出处. 亲,作为webrtc大会的推动者之一,大会期间不管是公共场合还是私 ...