我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何在C#中使用Dapper ORM

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何在C#中使用Dapper ORM

对象关系映射(ORM)这个概念已经存在很长时间了,ORM的作用就是用来解决 编程领域的 object model 和关系数据库中的 data model 的不匹配问题,Dapper 是一个开源的,轻量级的 ORM 框架,由 Stack Overflow 团队开发,Dapper 和其他流行的ORM框架相比,最大的优点就是羽翼级。

Dapper在最初开发时就考虑到了性能和易用性,它支持在 事务,存储过程 或者 批量插入时进行静态或者动态的对象绑定。

使用 Visual Studio 安装 Dapper ORM

要想了解 Dapper,从下面的步骤开始吧:

  • 打开 Visual Studio
  • 点击 文件 -> 新建 -> 项目
  • 选择 网站 -> ASP.Net Web Application
  • 给 web 项目指定一个名字
  • 然后选择一个 空模板
  • 点击 确定 生成 project

这样我们就创建好了一个 ASP.Net web application 项目

如果你已经安装了 NuGet,你可以通过 NuGet 去安装 Dapper,做法就是在 解决方案窗口 下的 Project 上右键选择 Manage NuGet Package ... 并且找到 Dapper,然后点击安装开启这个安装过程,一旦 Dapper 被成功安装,你就可以愉快的玩起来了哈。

使用 Dapper ORM 进行增删查改

接下来我用 Dapper 写一些简单的 CURD 语句来操作数据库,考虑如下的 IDG 数据库,包含了一个 Author 表,表的字段如下:

  • ID
  • FirstName
  • LastName

在使用Dapper时,你需要针对 数据库表 创建一个简单的实体类(POCO class),下面定义了 Author 实体对应 IDB 数据库的 Author 表。


 public class Author
 {
  public int Id { get; set; }
  public string FirstName { get; set; }
  public string LastName { get; set; }
 }

使用 Dapper 的 Query() 扩展方法,可以实现对数据库的查询然后将数据填充到你的 object model 中,下面方法的作用就是从 Author 表中查询所有的数据,然后存储到内存中,最后返回一个集合给调用方。


 public List<Author> ReadAll()
 {
   using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings[“AdventureWorks”].ConnectionString))
   {
    return db.Query<Author>
    (“Select * From Author”).ToList();
   }
 }

对了,为了能够使用上 Dapper 的扩展方法,你需要在代码文件的顶部引入 Dapper 命名空间,如下图:

下面的方法展示了如何从 Author table 表中查询指定的记录。


 public Author Find(int id) 
 {
  using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings [“AdventureWorks”].ConnectionString))
  {
   return db.Query<Author>(“Select * From Author “ + 
   WHERE Id = @Id”, new { id }).SingleOrDefault();
  }
 }

Dapper 的 Execute() 方法可以实现对数据的新增,修改,删除,此方法返回一个整数值,该值表示在执行查询时受到的影响行数。

下面的方法展示了如何使用 Dapper 更新一条记录。


 public int Update(Author author)
 {
  using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings [“AdventureWorks”].ConnectionString))
  {
   string sqlQuery ="UPDATE Author SET FirstName = @FirstName, " +
   “ LastName = @LastName “ + “WHERE Id = @Id”;
   int rowsAffected = db.Execute(sqlQuery, author);
   return rowsAffected;
  }
 }

正如上面代码所述,Update 方法返回了一个受影响的行数,意味着这么多的记录被修改,上面这段代码只会有一条记录被更新,所以说如果更新成功返回的就是 1。

在 Dapper ORM 中使用 存储过程

为了能够使用 Dapper 执行存储过程,在调用 Query 或者 Execute 方法时需要手工指定一下 CommandType 类型,下面的例子展示了如何使用 Dapper 执行 存储过程。


 public List<Author> Read()
 {
  using (IDbConnection db = new SqlConnection (ConfigurationManager.ConnectionStrings [“AdventureWorks”].ConnectionString))
  {
   string readSp ="GetAllAuthors";
   return db.Query<Author>(readSp, commandType: CommandType.StoredProcedure).ToList();
  }
 }

Dapper 框架也是支持事务操作的,如果有必要的话可以使用事务,使用方式很简单,你可以利用 BeginTransaction() 和 EndTransaction() 方法,其实和你使用 ADO.NET 的事务方式是一摸一样的,将需要事务的语句代码放置在 BeginTransaction 和 EndTransaction 之间即可。

Dapper ORM 真的是相当羽翼级 并且非常方便使用,它不会为你生成任何sql语句,在这种情况下还能够非常便捷的将查询结果映射到你的 POCO 对象上,最🐂👃的是,它的执行速度远超 Entity Framework,实际上,能和原生的 ADO.Net 媲美。

以上就是如何在C#中使用Dapper ORM的详细内容,更多关于C# 使用Dapper ORM的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何在C#中使用Dapper ORM

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

在C#中怎么使用Dapper ORM

这篇文章将为大家详细讲解有关在C#中怎么使用Dapper ORM,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用 Visual Studio 安装 Dapper ORM要想了解 Dapper,从下面的步
2023-06-14

如何在Asp.Net项目中使用ABP Dapper

如何在Asp.Net项目中使用ABP Dapper?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一 安装包依赖  这个不做过多的解释,通过Nuget 包管理器或者通过程序包
2023-06-08

如何使用Dapper CURD操作

这篇文章主要介绍“如何使用Dapper CURD操作”,在日常操作中,相信很多人在如何使用Dapper CURD操作问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Dapper CURD操作”的疑惑有所
2023-06-29

如何使用Dapper使用Inner join的操作

这篇文章主要介绍如何使用Dapper使用Inner join的操作,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、新创建两张表:Users表和Product表Users表定义如下:CREATE TABLE [dbo
2023-06-29

如何使用C++的ORM框架QxORM

这篇文章主要讲解了“如何使用C++的ORM框架QxORM”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用C++的ORM框架QxORM”吧!QxORM中,我们用的最多的无非是这两点官方表
2023-07-02
2024-04-02

Django ORM中,如何使用Coun

示例models解决方法有时候,我们想要获取一个对象关联关系的数量,但是我们不要所有的关联对象,我们只想要符合规则的那些关联对象的数量。示例models# models.pyfrom django.db import modelsclass
2023-01-31

如何在C#中使用Filewatcher

要在C#中使用FileWatcher,首先需要创建一个FileWatcher对象,并设置所需的属性和事件处理程序。以下是一个简单的示例,展示了如何在C#中使用FileWatcher来监视文件的创建、修改和删除事件:```csharpusin
2023-09-27

如何在C#中使用Image控件

这篇文章给大家介绍如何在C#中使用Image控件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先是View层,比较简单: 2023-06-06

如何在C#中使用foreach语句

今天就跟大家聊聊有关如何在C#中使用foreach语句,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C# foreach语句不仅仅只是do...while或者for循环语句的一个变体
2023-06-17

如何在c++中使用map结构

如何在c++中使用map结构?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。map的常用用法map 表示映射,可以将任何基本类型(包括 STL 容器)映射到任何基本类型(包括 S
2023-06-14

Polly如何在c#项目中使用

今天就跟大家聊聊有关Polly如何在c#项目中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Polly是一个C#实现的弹性瞬时错误处理库它可以帮助我们做一些容错模式处理,比如:超
2023-06-14

scanf在c语言中如何使用

scanf 函数用于从标准输入读取数据,根据指定的格式字符串,将数据存储到相应变量中。具体步骤包括:指定格式字符串,定义读取数据的格式和变量类型。提供变量指针,传递变量地址以存储读取的数据。调用 scanf 函数,传递格式字符串和变量指针作
scanf在c语言中如何使用
2024-04-29

top-level如何在C#9 中使用

本篇文章为大家展示了top-level如何在C#9 中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。顶级程序在 C# 9.0 之前,下面的写法在 Console 程序中已经是最小化的了。usin
2023-06-14

如何在C# 中使用listBox控件

本篇文章给大家分享的是有关如何在C# 中使用listBox控件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。原理:运用switch语句,根据不同选中值,实现不同内容 priva
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录