晚上浏览博客园 看到一篇非常实用的博客:.NET平台开源项目速览(14)最快的对象映射组件Tiny Mapper,花了10分钟简单了解了一下。

看评论也是挺有价值,同时也看到许多新手同学问道在实际项目中使用的情况。

下面就原作者的代码的基础上略作调整,阐述一下在实际项目场景中的使用:

第一步:了解类库方法:TinyMapper 主要有两个函数:

   TinyMapper.Bind<T1, T2>();//绑定映射关系

   TinyMapper.Map<T>(obj);//从对象获取想要的对象

第二步:初始化Mapping设置

说明:类似的Mapping设置无非两种模式:代码静态对象初始化模式,xml配置模式,很荣幸TinyMapper支持的是静态字典。

说明:以上mapping映射中,针对于原作者的代码,额外添加了:由PersonDto=》Person的映射关系。

   T GetMapObject<T>(object obj) where T:class 的作用会在后面的代码中体现出来。 简单一个方法,威力不可小嘘~~

第三步:DtoModel -》Model

从数据库模型映射到领域模型:

var p = TinyMapContext.GetMapObject<Person>(personDto);

第四步:Model-》DtoModel

从领域模型到数据库模型:

var personDto = TinyMapContext.GetMapObject<PersonDto>(person);

第五步:List<Model>=>List<DtoModel> 或者List<DtoModel>=>List<Model>

特别说明:对于获取列表类型的对象,不需要在静态初始化映射中额外添加 IList类型的对象。 TinyMapper会自动按照"映射过的基础类型"动态的帮你获取想要的数据。

本文的代码:示例

说明:代码浅显易懂,然人非完人,编码不规范的地方、手误、或代码存在缺陷、或严重性能问题,希望园友们批评指正。

Tiny Mapper官方网站:http://tinymapper.net/

github项目地址:https://github.com/TinyMapper/TinyMapper

原文地址:http://www.cnblogs.com/cdemo/p/5457065.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

.NET平台开源项目速览-最快的对象映射组件Tiny Mapper之项目实践相关推荐

  1. .NET平台开源项目速览(14)最快的对象映射组件Tiny Mapper

    好久没有写文章,工作甚忙,但每日还是关注.NET领域的开源项目.五一休息,放松了一下之后,今天就给大家介绍一个轻量级的对象映射工具Tiny Mapper:号称是.NET平台最快的对象映射组件.那就一起 ...

  2. .NET平台开源项目速览(8)Expression Evaluator表达式计算组件使用

    在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了一下Expression Evaluator验证组件.那里只是概述了一下,并没有对其使用和强大功能做 ...

  3. .NET平台开源项目速览(9)软件序列号生成组件SoftwareProtector介绍与使用

    原文:.NET平台开源项目速览(9)软件序列号生成组件SoftwareProtector介绍与使用 在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了 ...

  4. .NET平台开源项目速览(2)Compare .NET Objects对象比较组件

    原文:.NET平台开源项目速览(2)Compare .NET Objects对象比较组件 .NET平台开源项目速览今天介绍一款小巧强大的对象比较组件.可以更详细的获取2个对象的差别,并记录具体差别,比 ...

  5. .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB

    今天给大家介绍一个不错的小巧轻量级的NoSQL文件数据库LiteDB.本博客在2013年也介绍过2款.NET平台的开源数据库: 1.[原创]开源.NET下的XML数据库介绍及入门 2.[原创]C#开源 ...

  6. .NET平台开源项目速览(1)SharpConfig配置文件读写组件

    原文:.NET平台开源项目速览(1)SharpConfig配置文件读写组件 在.NET平台日常开发中,读取配置文件是一个很常见的需求.以前都是使用System.Configuration.Config ...

  7. .NET平台开源项目速览(17)FluentConsole让你的控制台酷起来

    从该系列的第一篇文章 .NET平台开源项目速览(1)SharpConfig配置文件读写组件 开始,不知不觉已经到第17篇了.每一次我们都是介绍一个小巧甚至微不足道的.NET平台的开源软件,或者学习,或 ...

  8. .NET平台开源项目速览(11)KwCombinatorics排列组合使用案例(1)

    阅读目录 1.KwCombinatorics基本介绍 2.足球彩票排列组合应用 3.排列组合生成代码与测试 今年上半年,我在KwCombinatorics系列文章中,重点介绍了KwCombinator ...

  9. .NET平台开源项目速览(4).NET文档生成工具ADB及使用

    .NET平台开源项目速览(4).NET文档生成工具ADB及使用 原文:.NET平台开源项目速览(4).NET文档生成工具ADB及使用 很久以前就使用ADB这个工具来生成项目的帮助文档.功能强大,在学习 ...

最新文章

  1. BT656与BT1120那点事
  2. Spring与其他Web框架集成
  3. 如何创建一个完美的单例模式
  4. ajax post参数长度限制,Ajax中的POST数据大小是否有限制?
  5. apache mod_xsendfile提高php文件下载速度的方法
  6. Split-Bregman迭代方式
  7. 【翻译】sql注入方式
  8. 分享一个检测用户是否用手机(Mobile)访问网站的 PHP 类
  9. [Django学习] Django基础(8)_富文本编辑器
  10. linux下cmake使用教程,超详细的cmake教程
  11. spyder安装matplotlib
  12. vs2019 IIS Express Web服务器无法启动
  13. 数据地图在商业数据分析中的5种应用
  14. 亚像素边缘检测提取算法的实现
  15. go语言如何使用指针?
  16. 刷脸支付的场景应用遍布大街小巷
  17. C# 身份证读卡器开发
  18. 创始人、CEO、总裁和董事长到底谁更大?
  19. spark on k8s:apache YuniKorn(Incubating)的助力
  20. 辉芒微FT61F023,FT61F011A

热门文章

  1. python实例32[简单的HttpServer]
  2. 2011年Android手机用户购买行为研究报告
  3. ABP vNext微服务架构详细教程——基础服务层
  4. WPF GridControl控件的用法举例
  5. asp.net core自定义依赖注入容器,替换自带容器
  6. C# 无意间写了一段线程死锁的代码
  7. ABP Framework 研习社经验总结(6.28-7.2)
  8. 接口管理平台YApi
  9. 使用 Xunit.DependencyInjection 改造测试项目
  10. 【BCVP升级】泛型主键的使用