在C#中怎么使用Dapper ORM
这篇文章将为大家详细讲解有关在C#中怎么使用Dapper ORM,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
使用 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 表。
publicclassAuthor { publicintId{get;set;} publicstringFirstName{get;set;} publicstringLastName{get;set;} }
使用 Dapper 的 Query() 扩展方法,可以实现对数据库的查询然后将数据填充到你的 object model 中,下面方法的作用就是从 Author 表中查询所有的数据,然后存储到内存中,最后返回一个集合给调用方。
publicList<Author>ReadAll() { using(IDbConnectiondb=newSqlConnection(ConfigurationManager.ConnectionStrings[“AdventureWorks”].ConnectionString)) { returndb.Query<Author> (“Select*FromAuthor”).ToList(); } }
对了,为了能够使用上 Dapper 的扩展方法,你需要在代码文件的顶部引入 Dapper 命名空间,如下图:
下面的方法展示了如何从 Author table 表中查询指定的记录。
publicAuthorFind(intid) { using(IDbConnectiondb=newSqlConnection(ConfigurationManager.ConnectionStrings[“AdventureWorks”].ConnectionString)) { returndb.Query<Author>(“Select*FromAuthor“+ WHEREId=@Id”,new{id}).SingleOrDefault(); } }
Dapper 的 Execute() 方法可以实现对数据的新增,修改,删除,此方法返回一个整数值,该值表示在执行查询时受到的影响行数。
下面的方法展示了如何使用 Dapper 更新一条记录。
publicintUpdate(Authorauthor) { using(IDbConnectiondb=newSqlConnection(ConfigurationManager.ConnectionStrings[“AdventureWorks”].ConnectionString)) { stringsqlQuery="UPDATEAuthorSETFirstName=@FirstName,"+ “LastName=@LastName“+“WHEREId=@Id”; introwsAffected=db.Execute(sqlQuery,author); returnrowsAffected; } }
正如上面代码所述,Update 方法返回了一个受影响的行数,意味着这么多的记录被修改,上面这段代码只会有一条记录被更新,所以说如果更新成功返回的就是 1。
在 Dapper ORM 中使用 存储过程
为了能够使用 Dapper 执行存储过程,在调用 Query 或者 Execute 方法时需要手工指定一下 CommandType 类型,下面的例子展示了如何使用 Dapper 执行 存储过程。
publicList<Author>Read() { using(IDbConnectiondb=newSqlConnection(ConfigurationManager.ConnectionStrings[“AdventureWorks”].ConnectionString)) { stringreadSp="GetAllAuthors"; returndb.Query<Author>(readSp,commandType:CommandType.StoredProcedure).ToList(); } }
Dapper 框架也是支持事务操作的,如果有必要的话可以使用事务,使用方式很简单,你可以利用 BeginTransaction() 和 EndTransaction() 方法,其实和你使用 ADO.NET 的事务方式是一摸一样的,将需要事务的语句代码放置在 BeginTransaction 和 EndTransaction 之间即可。
关于“在C#中怎么使用Dapper ORM”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
推荐阅读
-
在Python中,将K添加到列元组列表中的最小元素
处理数据集涉及识别特定列中的最小值并通过添加常量值(K)来更新它。通过实施优化的解决方案,我们可以有效地执行此操作,这对于数据...
-
使用switch case语句编写的C程序,用于计算几何图形的面积
#includevoidmain(){intfig_code;floatside,base,length,...
-
如何使 C# 代码可重用?
要在C#中使代码可重用,请使用接口。接口定义属性、方法和事件,这些成员是接口的成员。接口只包含成员的声明。派生类负责定义成员。这通...
-
C# 中的覆盖和隐藏有什么区别?
方法隐藏在C#中也称为隐藏。父类的方法可供子类使用,无需在遮蔽中使用override关键字。子类有其自己版本的相同函数。在...
-
在Java中使用示例双倍longValue()函数
Java是一种强大的面向对象语言,可以对各种数据类型进行高度的控制和精确度。其中一种功能是doublelongValue(),...
-
如何在Java中定义JSON字段名称的命名约定?
TheFieldNamingPolicycanbeusedtodefineafewstandardnaming...
-
Servlet中的HttpSession接口
在JavaWeb开发领域,了解HttpSession接口是创建动态和响应式Web应用程序的关键。在本文中,我们将探讨...
-
使用while循环查找自然数之和的Java程序
自然数之和可以使用编程语言中的不同迭代语句来计算。迭代语句是执行一组特定代码行直到循环语句中的条件失败的语句。在本文中,我们将讨论...
-
我们可以将Java数组转换为列表吗?
我们可以使用Arrays.asList()方法轻松地将Java数组转换为List。语法publicstaticLi...
-
Java中如何在不使用任何外部库的情况下读取网页内容?
TheURLclassofthejava.netpackagerepresentsaUniformResour...