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

晚上浏览博客园 看到一篇非常实用的博客:.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跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/329505.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

myeclipse窗口布局控件任意_木辛老师的编程课堂:Python和Qt第2讲之布局管理初探(三)...

在主窗口中放置多个控件&#xff0c;最好的方法是使用布局。控件的布局是学习PyQt路上比较关键也也是比较难理解的部分&#xff0c;赶快跟着木辛老师一起去看看吧。请点击右上角“关注”按钮关注我们哟&#xff1a;跟着木辛老师学习Python编程知识&#xff0c;变身快乐的编程达…

7.用户级线程

【README】 1.本文内容总结自 B站 《操作系统-哈工大李治军老师》&#xff0c;内容非常棒&#xff0c;墙裂推荐&#xff1b; 2.本文会介绍进程与线程的区别&#xff0c;线程切换&#xff0c;用户态线程&#xff0c;内核级线程等&#xff1b; 【1】多进程回顾 问题&#xff1a…

Oracle入门(五D)之如何设置show parameter显示隐含参数

转载自 oracle如何设置show parameter显示隐含参数在sqlplus中show parameter是显示不了隐藏参数的&#xff0c;需要做一个处理&#xff0c;如下所示&#xff1a; 以SYS用户登录&#xff1a; C:\Documents and Settings\guogang>sqlplus / as sysdba; SQL> create or r…

使用VS Code 从零开始开发并调试.NET Core 应用程序

使用VS Code 从零开始开发并调试.NET Core 应用程序&#xff0c;C#调试。上一篇 使用VS Code开发 调试.NET Core 应用程序 得到了大家的支持。 现在为大家带来从零开始教程&#xff0c;让你更好的了解.NET Core 应用程序。使用VS Code 开发C# 程序 并调试程序。 并且也会解决上…

8.内核级线程(核心级线程)

【README】 1.本文内容总结自 B站 《操作系统-哈工大李治军老师》&#xff0c;内容非常棒&#xff0c;墙裂推荐&#xff1b; 2.为什么要讲线程呢。实际要讲进程的切换&#xff1b;进程的切换包括切换指令&#xff0c;切换资源&#xff1b;切换指令就是切换线程&#xff08;简…

Oracle入门(五F)之11g show spparameter 命令的使用

转载自 oracle 11g show spparameter 命令的使用 当我们要获取oracle数据库当前的参数值时&#xff0c;可以通过查询v$parameter动态性能视图得到&#xff0c;当然了也可以使用show parameter p_name这样的方式得到。但是在Oracle11g以前&#xff0c;show parameter只能获得当前…

跨平台与云端创新,为企业和开发者开辟更广阔的未来

从制造业到零售业&#xff0c;从市场营销到客户关系&#xff0c;数字化转型正在给各行各业带来巨大的变革和冲击。面对云计算、大数据、社交和移动计算&#xff0c;企业需要更主动地加速自身业务模式的转变&#xff0c;而开发者和开发团队将在这一转变过程中发挥至关重要的作用…

注解@resource的作用_Bean基于Annotation(注解)的装配方式

在Spring中&#xff0c;尽管使用XML配置文件可以实现Bean的装配工作&#xff0c;但如果应用中有很多Bean时&#xff0c;会导致XML配置文件过于臃肿&#xff0c;给后续的维护和升级工作带来一定的困难。为此&#xff0c;Spring提供了对Annotation(注解)技术的全面支持。Spring中…

Oracle入门(十二H)之设置、恢复和删除不可用列

转载自 Oracle设置和删除不可用列一、不可用列的定义 1、不可用列是什么&#xff1f; 就是表中的1个或多个列被ALTER TABLE…SET UNUSED 语句设置为无法再被程序利用的列。 2、使用场景&#xff1f; If you are concerned about the length of time it could take to drop colu…

9.内核级线程代码实现

【README】 1.本文内容总结自 B站 《操作系统-哈工大李治军老师》&#xff0c;内容非常棒&#xff0c;墙裂推荐&#xff1b; 【说明】 本文中提到的父线程可以理解为父进程因为进程包括运行资源和执行指令&#xff0c;又执行指令表示为线程&#xff0c;所以也可以说 进程包括…

python 列表生成表格_【转】Python 列表生成式

原文&#xff1a;https://blog.csdn.net/heartyhu/article/details/509880071. 生成列表要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]&#xff0c;我们可以用range(1, 11)&#xff1a;>>> range(1, 11)[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]但如果要生成[1x1, 2x2, 3x3, ……

Linux(CentOS 6.7)下配置Mono和Jexus并且部署ASP.NET MVC3、4、5和WebApi(跨平台)

1.开篇说明 a. 首先我在写这篇博客之前&#xff0c;已经在自己本地配置了mono和jexus并且成功部署了asp.net mvc项目&#xff0c;我也是依赖于在网上查找的各种资料来配置环境并且部署项目的&#xff0c;而其在网上也已有了很多这方面的文章&#xff0c;故而我就想我是写还是不…

10.操作系统演进过程

【README】 1.本文内容总结自 B站 《操作系统-哈工大李治军老师》的《操作系统的那棵树》&#xff0c;内容非常棒&#xff0c;墙裂推荐&#xff1b; 2.思维僵化与发散 the mind is not a vessel that needs filing, but wood that needs igniting. 头脑不是需要归档的容器&am…

Oracle入门(十二I)之误删除数据的恢复方法

转载自 oracle误删除数据的恢复方法今天主要以oracle数据库为例&#xff0c;介绍关于表中数据删除的解决办法。&#xff08;不考虑全库备份和利用归档日志&#xff09;删除表中数据有三种方法&#xff1a;delete&#xff08;删除一条记录&#xff09;drop或truncate删除表格中数…

Oracle入门(七A)之表空间配额(quota)

转载自 oracle表空间配额&#xff08;quota&#xff09;一、quota相关视图 1)dba_ts_quotas(查看所有用户的表空间配额) BYTES字段表示用户已经使用的空间&#xff1b;MAX_BYTES如果为-1表示没有限制&#xff0c;其他值表示限制配额 --只有用alter user user_name quota on tab…

python嵌套列表字典_python中嵌套列表转为字典

题目&#xff1a;# 有一组用例数据如下&#xff1a;cases [[case_id, case_title, url, data, excepted],[1, 用例1, www.baudi.com, 001, ok],[4, 用例4, www.baudi.com, 002, ok],[2, 用例2, www.baudi.com, 002, ok],[3, 用例3, www.baudi.com, 002, ok],[5, 用例5, www.ba…

.NET之全平台一体化的体验

一、前言 近来利用空闲时间研究了一下Xamarin的技术&#xff0c;想想既然提供了如此好的支持&#xff0c;就该尝试一切可能&#xff0c;来一个”大小通吃“。 何为全平台&#xff1a;APP包括Android、IOS、WP&#xff0c;WEB可在Window和Linux部署运行(进可攻&#xff0c;退可守…

11.cpu调度策略与schedule调度函数

【README】 1.本文内容总结自 B站 《操作系统-哈工大李治军老师》&#xff0c;内容非常棒&#xff0c;墙裂推荐&#xff1b; 2.cpu调度&#xff1a; 指的是 cpu从就绪队列中选择一个进程来执行&#xff1b;选择哪一个进程是调度算法的执行结果&#xff1b; 3. 相关定义&…

Oracle入门(十二)之SQL的DDL

一、数据类型 Character 数据类型Number 数据类型Date 数据类型Raw 和 Long Raw 数据类型 LOB 数据类型 注&#xff1a;Oracle数据类型详解二、表 &#xff08;1&#xff09;创建表 create table emp ( emp_id char (10) primary key, emp_name varchar2 (30), sal number (…

2016微软开发者峰会在京举办 纳德拉要来做演讲

还有不到一个月的时间&#xff0c;2016 微软开发者峰会就要在北京举办了。 在这场开发者的盛会上&#xff0c;微软 CEO、技术牛人&#xff0c;还有来自微软亚洲研究院、亚太研发集团、Xamarin 团队以及微软中国开发体验的专家们将对各平台的开发进行技术探讨。 据了解&#xff…