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. redis学习(一)Redis应用场景

    Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象构建不同的 ...

  2. OC项目中使用Swift

    1.在OC工程中新建 Swift 文件,会提示的是否创建一个桥接文件,创建不创建都无所谓,这个桥接文件主要是用来包含OC头文件的,主要用于Swift中使用OC         2.在Person.sw ...

  3. python --那些你应该知道的知识点

    1.python函数参数(含星号参数)http://blog.useasp.net/archive/2014/06/23/the-python-function-or-method-parameter ...

  4. GLSL 中的光照计算

    理论知识转载地址:http://blog.csdn.net/ym19860303/article/details/25545933 1.Lambert模型(漫反射) 环境光: Iambdiff = K ...

  5. Android开发如何去除标题栏title

    虽然是一个小问题,今天遇到了,也就写下来吧.防止自己忘掉. 取消标题栏的方式有两种,一种是在代码添加,另一种是在AndroidManifest.xml里面添加. 1.在代码中实现:在此方法setCon ...

  6. JS里的onclick事件

    可以通过以下代码了解JS里的onclick事件: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml&quo ...

  7. web关键词搜索高亮代码

    <script type="text/javascript"> /* * 参数说明: * obj: 对象, 要进行高亮显示的html标签节点. * hlWords: 字 ...

  8. 【MySQL】MySQL无基础学习和入门之一:数据库基础概述和实验环境搭建

    数据库基础概述  大部分互联网公司都选择MySQL作为业务数据存储数据库,除了MySQL目前还有很多公司使用Oracle(甲骨文).SQLserver(微软).MongoDB等. 从使用成本来区分可以 ...

  9. MSSQL Server Transaction 数据库事务回滚的用法

    使用的表结构如下:         Commit TransAction    Else        Rollback TransAction/*    自定义一个变量来判断最后是否发生过错误.*/ ...

  10. Secure your iPhone with 6 digit passcode by upgrading to iOS9

    IP-Box could crack 4 digit passcode, what about 6 digit passcode??? All you need to do is to upgrade ...