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 ...
随机推荐
- (Loadrunner)Error: Failed to send data by channels - post message failed.(转)
把Diagnotics-configure-Web Page Diagnotics 设置为 转自: http://www.51testing.com/html/64/371664-3708254.ht ...
- memcached学习(4). memcached的分布式算法
memcached的分布式 正如第1次中介绍的那样, memcached虽然称为"分布式"缓存服务器,但服务器端并没有"分布式"功能. 服务器端仅包括 第2次. ...
- 在使用 百度编辑器 Ueditor 时,不能进入 Controller 相应的 Action 的处理方法
如果在前端的页面中使用了 Ueditor 编辑器,那么在提交表单数据时,将不会执行 期望的 Controller 中的 Action ,造成这样的原因是: 在 MVC 4 的框架中,当前端页面需要提交 ...
- Eclipse 安装反编译插件jadclipse
下载jadClipse地址: 链接: http://pan.baidu.com/s/1kTN4TPd 提取码: 3fvd 将net.sf.jadclipse_3.3.0.jar拷贝到eclipse的 ...
- TCP/IP详解学习笔记(15)-- TCP的流量控制和拥塞控制
TCP的流量控制 1.概述 所谓的流量控制就是让发送方的发送速率不要太快,让接收方来得及接受.利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制.TCP的窗口单位是字节,不是报 ...
- Android开发中常用到方法总结
1.判断服务是否在运行中 public static boolean isServiceRunning(Context context, String serviceName) { boolean ...
- 【EF 4】ORM框架及其流行产品之一EF介绍
导读:跳进了多租户切换数据库的坑,那么就继续走下去吧.在我们的项目中,是运用EF实现对数据库的操作,那么EF其实是.NET系统中,基于ORM框架的一个产品实现.在java那边,则有Hibernate和 ...
- a mystrious max subquence sum
#include<cstdio>#include<cstring>const int maxn=100005;int buf[maxn];int main(){ freopen ...
- AX 最顶部工作区间窗口文本修改
修改Class\Info\method\workspaceWindowCreated: void workspaceWindowCreated(int _hWnd) { // Put workspac ...
- Java druid
1.ConnectionFactory (添加引用:druid-1.0.1.jar) package nankang.test; import java.sql.Connection; import ...