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的简单用法的更多相关文章

  1. CATransition(os开发之画面切换) 的简单用法

    CATransition 的简单用法 //引进CATransition 时要添加包“QuartzCore.framework”,然后引进“#import <QuartzCore/QuartzCo ...

  2. jquery.validate.js 表单验证简单用法

    引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...

  3. NSCharacterSet 简单用法

    NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...

  4. [转]Valgrind简单用法

    [转]Valgrind简单用法 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html Valgrind的主要作者Julian S ...

  5. Oracle的substr函数简单用法

    substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H'  *从字符串第一个字符开始截取长度为1的字符串 subst ...

  6. Ext.Net学习笔记19:Ext.Net FormPanel 简单用法

    Ext.Net学习笔记19:Ext.Net FormPanel 简单用法 FormPanel是一个常用的控件,Ext.Net中的FormPanel控件同样具有非常丰富的功能,在接下来的笔记中我们将一起 ...

  7. TransactionScope简单用法

    记录TransactionScope简单用法,示例如下: void Test() { using (TransactionScope scope = new TransactionScope()) { ...

  8. WPF之Treeview控件简单用法

    TreeView:表示显示在树结构中分层数据具有项目可展开和折叠的控件 TreeView 的内容是可以包含丰富内容的 TreeViewItem 控件,如 Button 和 Image 控件.TreeV ...

  9. listActivity和ExpandableListActivity的简单用法

    http://www.cnblogs.com/limingblogs/archive/2011/10/09/2204866.html 今天自己简单的总结了listActivity和Expandable ...

随机推荐

  1. CODESOFT 2015中的二维码该怎样生成

    由于二维条码具有储存量大.保密性高.追踪性高.抗损性强.备援性大.成本便宜等特性,其应用 渐趋广泛,因此二维码的制作对于CODESOFT条码设计软件的用户来讲可谓司空见惯.我们最常见的二维码要数QR码 ...

  2. NopCommerce 3.80框架研究(一) 数据访问与持久化

    NopCommerce 是一个国外的开源电商系统.3.80版本使用EF6.0 和.Net Framework 4.5.1 并引入了Autofac , Autofac是一款IOC框架,比较于其他的IOC ...

  3. http 302

    404 not found500 internal server error 302临时重定向.指被访问的网页由于各种需求临时跳转到其它页面. yii若用户为游客状态,但controller中添加了权 ...

  4. UIBezierPath IOS贝塞尔曲线

    //记录  贝塞尔曲线使用 //根据一个矩形画曲线 + (UIBezierPath *)bezierPathWithRect:(CGRect)rect //根据矩形框的内切圆画曲线 + (UIBezi ...

  5. html5相关

    1.语义化标签: header\section\aside\footer 2.音视频播放: video\audio 其中video支持ogg\mpeg4\webm格式的视频: 3.canvas 一.画 ...

  6. 在PHP5.3以上版本运行ecshop和ecmall出现的问题及解决方案

    ecshop 问题一:商城首页报错 Strict Standards: Only variables should be passed by reference in D:\wamp\ecshop\i ...

  7. WP8_定位新页面中listbox的某项

    即将跳转到页面A,在页面A中有一个listbox,在跳转的时候,接收参数,自动选中listbox中的某项 /// <summary> /// 接收参数,定位当前选中项 /// </s ...

  8. angular 指令@、=、&的用法和区别

    1.指令作用域中的@ 作用是把当前属性作为字符串传递. html: <div ng-controller="MyCtrl"> <drink water=" ...

  9. CentOS下通过rdesktop连接Windows远程桌面

    众所周知,微软的Windows提供了一种远程桌面系统(Remote Desktop),该服务的默认端口是3389,可使用户远程登录进行系统管理或作为终端服务器运行各种应用软件. 而要连接Windows ...

  10. android studio首次运行出错

    转载2015-10-24 16:28:15 标签:androidstudioandroidstudio无法启androidstudio1.4无法 Internal error. Please repo ...