- 授权协议: Apache
- 开发语言: C#
- 操作系统: 跨平台
- 软件首页: https://gitee.com/wuyuege/RobotMapper
- 软件文档: https://gitee.com/wuyuege/RobotMapper/blob/master/README.md
软件介绍
在日常项目开发中,需要将数据访问层的Entity转化为数据传输层的DTO,或者将数据传输层的DTO转化为前端的ViewModel,而手写转换方法很烦,而且随着结构的增加,类的增加,代码量会比较大且不利于更新维护,因此需要一款能够自动映射工具帮我们实现这些工作。
我们对映射工具也有如下要求:
转化效率必须高:显然,查询数据只需要0.001毫秒但是映射花费1秒这是我们不能接受的;
配置必须简单甚至无需配置或者自动配置:每次映射都需要进行复杂的配置无异于手动映射让人烦躁;
解决循环引用问题:尤其是数据访问层,由于数据库表之间的关系,我们的Entity会有很多一对一,一对多,多对多的导航属性,类型之间的互相引用必不可少,传统的映射工具无法自动解决该问题,要么进入死循环要么映射效率低下;
那么本映射工具“RobotMapper”就是为了解决以上问题而诞生的,是的,它叫RobotMapper,一切都是自动化完成!
该款工具有如下特色:
无需配置:
var user = TestHelper.创建扁平化User(); var newuser = user.RobotMap<User, DTO.User>(); Assert.AreEqual(user.Code, newuser.Code); Assert.AreEqual(user.Id, newuser.Id); Assert.AreEqual(user.Department, newuser.Department); Assert.AreEqual(user.Name, newuser.Name);
解决循环引用
创建一个循环引用Userpublic static User 创建循环引用User() { Entity.User user = new User() { Code = "Liuhai", Id = "hai.liu", Department = "部门1", Name = "海哥", }; user.Roles.Add(new Role() { Name = "角色1", Users = new List<User>() { new User() { Name = "SB" } } }); return user; }
仍然是自动映射
var user = TestHelper.创建循环引用User(); var newuser = user.RobotMap<User, DTO.User>(); Assert.AreEqual(user.Code, newuser.Code); Assert.AreEqual(user.Id, newuser.Id); Assert.AreEqual(user.Department, newuser.Department); Assert.AreEqual(user.Name, newuser.Name); Assert.IsTrue(newuser.Roles.Count == 1);
支持自定义映射配置:
[TestMethod] public void 测试配置Bind() { Mapper.Initialize(creator => { creator.CreatMap<User, DTO.User>(config => { config.Bind(x => x.User12.Name, y => y.UserName); config.Ignore(y => y.Roles); }); }); }支持忽略属性:
[TestMethod] public void 测试忽略规则转换() { Mapper.Initialize(creator => { creator.CreatMap<User, DTO.User>(config => { config.Ignore(y => y.Code); config.Ignore("Department", "Name"); }); }); var user = TestHelper.创建扁平化User(); var newuser = user.RobotMap<User, DTO.User>(); Assert.IsNull(newuser.Code); Assert.IsNull(newuser.Department); Assert.IsNull(newuser.Name); }
编写高质量代码:改善Python程序的91个建议
张颖、赖勇浩 / 机械工业出版社 / 2014-6 / 59.00元
在通往“Python技术殿堂”的路上,本书将为你编写健壮、优雅、高质量的Python代码提供切实帮助!内容全部由Python编码的最佳实践组成,从基本原则、惯用法、语法、库、设计模式、内部机制、开发工具和性能优化8个方面深入探讨了编写高质量Python代码的技巧与禁忌,一共总结出91条宝贵的建议。每条建议对应Python程序员可能会遇到的一个问题。本书不仅以建议的方式从正反两方面给出了被实践证明为......一起来看看 《编写高质量代码:改善Python程序的91个建议》 这本书的介绍吧!
CSS 压缩/解压工具
在线压缩/解压 CSS 代码
SHA 加密
SHA 加密工具
