写在前面

上篇文章我们讲了如在在实际项目开发中使用Git来进行代码的版本控制,当然介绍的都是比较常用的功能。今天我再带着大家一起熟悉下一个ORM框架Dapper,实例代码的演示编写完成后我会通过Git命令上传到GitHub上,正好大家可以再次熟悉下Git命令的使用,来巩固上篇文章的知识。本篇文章已经收入.NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划 有兴趣的朋友可以加入.NET Core项目实战交流群637326624 进行交流。

作者:依乐祝

原文地址:https://www.cnblogs.com/yilezhu/p/10024091.html

Dapper是什么

Dapper是.NET下一个轻量级的ORM框架,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的。也就是说实体类都要自己写。它没有复杂的配置文件,一个单文件就可以了。Dapper通过扩展你的IDbConnection来进行工作的。如果你想了解更多内容的话请点击这里。

Dapper快速入门

前面几篇文章我们进行介绍的时候都是手动在代码里面创建的模拟数据,这篇文章我们就结合Dapper来从数据库进行相关的操作。为了演示的方便,这里的实例代码我们就使用一个简单地asp.net core控制台程序来进行。

开始前的准备

在我们的项目文件夹,单击鼠标右键选择“在当前文件夹下面打开Git Bash”

然后输入git checkout Master 切换回Mater分支,然后输入git checkout -b Sample05 创建一个新的名为“Sample05”的分支,如下所示:

使用vs2017创建一个新的项目,名称为“Sample05” 位置位于我们当前的目录,如下图所示:

接下来打开数据库,新建一个Content内容表,表结构还沿用之前教程中的实体,这里只给出MSSql的脚本:至于MySql的你自己建了,如果你实在不会的话可以到群里问其他小伙伴要吧

5.项目中新增数据库表对应的实体对象,代码如下:

6.项目中添加Dapper的Nugets包,相信一路看教程过来的你一定知道怎么新增Nuget包吧,这里就不过多介绍了。

实战演示

插入操作:将一个对象插入到数据库中,代码如下:

一次批量插入多条数据,测试代码如下:

执行下代码查看到控制台输出如下的结果:

然后到数据库查看下表中的数据如下:

下面我们再分别测试下删除一条数据,与一次删除多条数据吧,代码如下:

然后去数据库里查看,发现主键为2,3,4的数据都已经被删除了,如下图所示:

下面我们再测试下修改吧,也是分别测试一次只修改一条数据(主键为5),与一次批量修改多条数据(主键为6,7)

现在我们执行下测试代码看下结果吧

再到数据库中查看下数据,上步骤5中最后一张图相比较

增删改都测试了,下面就开始测试查询吧,我们分别来测试下查询指定的数据以及一次查询多条数据来看下结果吧。还是先上代码,:

然后我们打上断点然后去看下结果吧!这里图片我没有截成功,所以就不贴了。

关联查询,Dapper的强大之处就在于其关联查询了!为了测试的方便,我们给主键为5的content添加两个comment中,这个插入的代码就不贴出来了,留给大家自行书写吧,如果不会的话可以加群问群里的其他小伙伴吧。这里需要新建一个类

然后就是测试代码,运行的查询测试代码如下:查询id为5的文章,文章是包含评论列表的

代码如下:

结果如下所示,调试的代码没法截图我也很无奈。

GitHub源码

GitHub的测试源码已经上传,https://github.com/yilezhu/Czar.Cms/tree/Sample05 放在Czar.Cms的Sample05分支上面。大家可以参考下,觉得有用的话记得star哦!

总结

本文给大家演示了Dapper的常用方法,不过都是通过同步的方式进行操作的,如果你想使用异步的话可以自行进行测试。文中的大部分内容都有截图,个别调试无法截图的大伙可以自行调试查看!相信通过本文的实例讲解,大伙应该能够使用dapper进行相应的开发!下一篇文章我们将进行vue的讲解!当然也只是进行很浅层次的讲解。因为我是一个后端,也是抱着学习的态度来进行vue的记录的!主要是以快速上为主。

相关文章:

  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划

  • .NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了

  • .NET Core实战项目之CMS 第三章 入门篇-源码解析配置文件及依赖注入

  • .NET Core实战项目之CMS 第四章 入门篇-Git的快速入门及实战演练

原文地址:https://www.cnblogs.com/yilezhu/p/10024091.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

.NET Core实战项目之CMS 第五章 入门篇-Dapper的快速入门看这篇就够了相关推荐

  1. .NET Core实战项目之CMS 第十七章 CMS网站系统的部署

    目前我们的.NET Core实战项目之CMS系列教程基本走到尾声了,通过这一系列的学习你应该能够轻松应对.NET Core的日常开发了!当然这个CMS系统的一些逻辑处理还需要优化,如没有引入日志组件以 ...

  2. .NET Core实战项目之CMS 第十三章 开发篇-在MVC项目结构介绍及应用第三方UI

    作为后端开发的我来说,前端表示真心玩不转,你如果让我微调一个位置的样式的话还行,但是让我写一个很漂亮的后台的话,真心做不到,所以我一般会选择套用一些开源UI模板来进行系统UI的设计.那如何套用呢?今天 ...

  3. .NET Core实战项目之CMS 第十一章 开发篇-数据库生成及实体代码生成器开发

    上篇给大家从零开始搭建了一个我们的ASP.NET Core CMS系统的开发框架,具体为什么那样设计我也已经在第十篇文章中进行了说明.不过文章发布后很多人都说了这样的分层不是很合理,什么数据库实体应该 ...

  4. .NET Core实战项目之CMS 第七章 设计篇-用户权限极简设计全过程

    写在前面 这篇我们对用户权限进行极简设计并保留其扩展性.首先很感谢大家的阅读,前面六章我带着大家快速入门了ASP.NET Core.ASP.NET Core的启动过程源码解析及配置文件的加载过程源码解 ...

  5. .NET Core实战项目之CMS 第六章 入门篇-Vue的快速入门及其使用

    写在前面 上面文章我给大家介绍了Dapper这个ORM框架的简单使用,大伙会用了嘛!本来今天这篇文章是要讲Vue的快速入门的,原因是想在后面的文章中使用Vue进行这个CMS系统的后台管理界面的实现.但 ...

  6. .NET Core实战项目之CMS 第四章 入门篇-Git的快速入门及实战演练

    写在前面 上篇文章.NET Core实战项目之CMS 第三章 入门篇-源码解析配置文件及依赖注入我带着大家通过分析了一遍ASP.NET Core的源码了解了它的启动过程,然后又带着大家熟悉了一遍配置文 ...

  7. .NET Core实战项目之CMS 第三章 入门篇-源码解析配置文件及依赖注入

    写在前面 上篇文章我给大家讲解了ASP.NET Core的概念及为什么使用它,接着带着你一步一步的配置了.NET Core的开发环境并创建了一个ASP.NET Core的mvc项目,同时又通过一个实战 ...

  8. .NET Core实战项目之CMS 第十六章 用户登录及验证码功能实现

    前面为了方便我们只是简单实现了基本业务功能的增删改查,但是登录功能还没有实现,而登录又是系统所必须的,得益于 ASP.NET Core的可扩展性因此我们很容易实现我们的登录功能.今天我将带着大家一起来 ...

  9. .NET Core实战项目之CMS 第十四章 开发篇-防止跨站请求伪造(XSRF/CSRF)攻击处理...

    通过 ASP.NET Core,开发者可轻松配置和管理其应用的安全性. ASP.NET Core 中包含管理身份验证.授权.数据保护.SSL 强制.应用机密.请求防伪保护及 CORS 管理等等安全方面 ...

最新文章

  1. ubuntu 如何关闭离线模式_如何在macOS中打开或关闭Mac暗黑模式
  2. KD树和LSH局部敏感哈希
  3. 从0到100 | 用户画像的构建思路
  4. ceph 代码分析 读_Ceph OSD磁盘异常流量问题分析
  5. 【Linux 内核 内存管理】优化内存屏障 ② ( 内存屏障 | 编译器屏障 | 处理器内存屏障 | 内存映射 I/O 写屏障 )
  6. 从用户的视角看待网页设计(一)
  7. java对象的类型转换_Java对象的类型转换和属性复制
  8. python飞机大战3关BOSS
  9. logging.getLogger(logger)
  10. 【Python】求n!
  11. struts2校验框架之Visitor校验器
  12. mysql循环map_java Map 遍历速度最优解
  13. 【SKILLS】拯救你的----连读
  14. 125 个视频成就千万级网红,Python 告诉你李子柒都在拍些什么?
  15. Java高并发编程详解-代码在本地
  16. 安卓手机USB无法共享、上网或卡顿的解决方法
  17. mysql-------流程控制结构
  18. Eclipse+CDT+MinGW 配置 C/C++ 开发环境
  19. Markdown编辑器
  20. linux proftpd 用户,[原]把boblog博客的用户导入proftpd用户认证数据库

热门文章

  1. jq html 多一个引号,为什么jQuery模板会为某些字符串添加双引号
  2. linux系统输入指令,详解linux系统输入输出管理和vim的常用功能
  3. 狐狸文│区块链发展的正路
  4. oracle sqlplus使用
  5. freetds 移植
  6. ActionContext和ActionSupport的学习
  7. because it is not a variable 编译错误解决方案
  8. 【转】x.509证书在WCF中的应用(CS篇)
  9. Oracle 10R2 研究--db_file_multiblock_read_count对成本的影响
  10. ~~~~我是一棵小树苗~~~~