【续】5年后,我们为什么要从 Entity Framework 转到 Dapper 工具?

向来有争议的话题都是公说公的理,婆说婆的理,Entity Framework的爱好者对此可以说是嗤之以鼻,不屑一顾,而Dapper爱好者则是举双手赞成,阅之大快人心。

每个人不同的阅历,社会经验,甚至对简繁的偏见都会影响对此事的看法,凡事都有优劣,取其精华而弃之糟泊,方为上策。

这篇文章则将目光聚焦到Dapper。

Dapper是如此的简单,她只提供了 3 个帮助函数:

执行一个查询,将结果映射到一个强类型列表

执行一个查询,将结果映射到一个动态对象列表

执行一个命令,不返回结果

而在实际的项目中,我们可能只会用到强类型列表,所以上面列出的 3 个帮助函数只会用到 2 个。

有人说了,简单其实就意味着复杂,的确如此。

过少的封装意味着每次可能要书写过多的重复代码,因此每个Dapper开发者可能都会自行扩展一些用着顺手的方法,也就不足为奇了,俗话说一千个人眼里有一千个哈姆雷特。

下面我会分享在将 AppBoxPro 从 EntityFramework 迁移到 Dapper 中遇到的问题,以及解决方法,其中也包含我的小小封装,希望你能喜欢。

下面是 AppBoxPro.Dapper 的项目开发截图:

【续】5年后,我们为什么要从 Entity Framework 转到 Dapper 工具?

 

提醒:文末免费下载价值 109 元的 AppBoxPro.Dapper 的全部源代码,仅限 2018-09-10/11 两天,莫失莫忘!

正文 模型的约定

我们对模型有两个约定:

1. IKeyID接口

2. NotMapped特性

来看一下 User 模型的声明:

public class User : IKeyID { [Key] public int ID { get; set; } [Required, StringLength(50)] public string Name { get; set; } [Required, StringLength(100)] public string Email { get; set; } public int? DeptID { get; set; } [NotMapped] public string UserDeptName { get; set; } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzswsf.html