在上一篇文章中,讲解了如何安装Dapper,这篇文章中将会讲解如何使用Dapper使用CURD操作。

例子中使用到的实体类定义如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace DapperApplicationDemo.Model
 8 {
 9    public class User
10     {
11         public int UserId { get; set; }
12
13         public string UserName { get; set; }
14
15         public string Email { get; set; }
16
17         public string Address { get; set; }
18     }
19 }

注意:在使用下面的方法之前要首先引入Dapper的命名空间:Using Dapper;

一、插入数据

1、使用匿名类插入数据

IDbConnection connection = new SqlConnection(conn);
var result = connection.Execute(
"Insert into Users values (@UserName, @Email, @Address)",
new { UserName = "Tom", Email = "747954712@qq.com", Address = "北京" });

查询数据库:

2、使用实体类插入数据

string sqlCommandText = "insert into Users(UserName,Email,Address) Values (@UserName,@Email,@Address)";
using (IDbConnection connection = new SqlConnection(conn))
{User user = new User(){UserName = "tim",Email = "78415155@qq.com",Address = "北京"};int result = connection.Execute(sqlCommandText,user);if (result > 0){Console.WriteLine("插入成功!");}else{Console.WriteLine("插入失败!");}
}

查询数据库:

3、InsertBulk操作

既然是Bulk操作,那肯定就是批量插入了,我们要做的就是将上面使用到的“匿名对象”变成“匿名对象集合”就可以了,代码如下:

using (IDbConnection connection = new SqlConnection(conn))
{var userList = Enumerable.Range(1012, 100000).Select(i => new User(){Email = i + "qq.com",Address = "北京",UserName = "CK" + i,});var result = connection.Execute("insert into Users values(@UserName,@Email,@Address)", userList);
}

查询数据库:

二、查询数据

using (IDbConnection connection = new SqlConnection(conn))
{// 查询var query = connection.Query<User>("SELECT * FROM Users");query.AsList().ForEach(p => {Console.WriteLine("Id:"+p.UserId+" UserName:"+p.UserName+" Email:"+p.Email+" Address:"+p.Address);});
}

程序运行结果:

三、更新数据

1、使用匿名类更新

using (IDbConnection connection = new SqlConnection(conn))
{var result = connection.Execute("update Users set UserName='Tim',Address='上海' where UserId=@UserId", new { UserId = 2 });
}

查询数据库:

2、使用实体类更新

using (IDbConnection connection = new SqlConnection(conn))
{User user = new User();user.UserName = "张无忌";user.UserId = 1;var result = connection.Execute("update Users set UserName=@UserName where UserId=@UserId", user);
}

查询数据库:

3、使用键值对更新

using (IDbConnection connection = new SqlConnection(conn))
{List<KeyValuePair<string, object>> keys = new List<KeyValuePair<string, object>>();keys.Add(new KeyValuePair<string, object>("@UserName", "风清扬"));keys.Add(new KeyValuePair<string, object>("@UserId", 2));var result = connection.Execute("update Users set UserName=@UserName where UserId=@UserId", keys);
}

查询数据库:

四、删除数据

1、使用匿名类删除数据

using (IDbConnection connection = new SqlConnection(conn))
{var result = connection.Execute("delete from Users where UserId=@UserId", new { UserId = 3 });
} 

2、使用实体类删除数据

using (IDbConnection connection = new SqlConnection(conn))
{User user = new User();user.UserId = 4;var result = connection.Execute("delete from Users where UserId=@UserId", user);
}

示例程序代码下载地址:https://pan.baidu.com/s/1nvaJ8LV

轻量级ORM框架Dapper应用二:使用Dapper实现CURD操作相关推荐

  1. c# 轻量级ORM框架 实现(一)

    c# 轻量级ORM框架 实现(一) 2018年09月04日 14:11:02 IT哈 阅读数:1245 发布一个自己写的一个轻量级ORM框架,本框架设计期初基于三层架构.所以从命名上来看,了解三层的朋 ...

  2. .NET轻量级ORM框架Dapper入门精通

    一.课程介绍 本次分享课程包含两个部分<.NET轻量级ORM框架Dapper修炼手册>和<.NET轻量级ORM框架Dapper葵花宝典>,阿笨将带领大家一起领略轻量级ORM框架 ...

  3. 重磅开源:基于.NET 6.0 自研轻量级ORM框架

    Fast Framework 项目:https://gitee.com/China-Mr-zhong/Fast.Framework 一.前言 1.为了实现快速开发,省去编写大量Sql时间,更好的面向对 ...

  4. 轻量级ORM框架 【Dapper】 的使用

    ORM是什么? 从字面理解,O是Object,对象:R是Relation,关系:M是Mapping,映射.所以,用一句话概括就是:ORM是一种对象关系映射的技术. Dapper 是.NET下的一种OR ...

  5. bltoolkit mysql_.NET 轻量级 ORM 框架 - Dapper 介绍

    转自:https://blog.csdn.net/hanjun0612/article/details/52170204 Dapper简单介绍: Dapper is a single file you ...

  6. 轻量级ORM框架——第二篇:Dapper中的一些复杂操作和inner join应该注意的坑

       上一篇博文中我们快速的介绍了dapper的一些基本CURD操作,也是我们manipulate db不可或缺的最小单元,这一篇我们介绍下相对复杂 一点的操作,源码分析暂时就不在这里介绍了. 一:t ...

  7. dapperpoco mysql_Dapper一个和petapoco差不多的轻量级ORM框架

    我们都知道ORM全称叫做Object Relationship Mapper,也就是可以用object来map我们的db,而且市面上的orm框架有很多,其中有一个框架 叫做dapper,而且被称为th ...

  8. 轻量级ORM框架 Bankinate

    [前言] 前面讲过ORM的前世今生,对ORM框架不了解的朋友可以参考博文:https://www.cnblogs.com/7tiny/p/9551754.html 今天,我们主要通过设计一款轻量级的O ...

  9. Python轻量级ORM框架——peewee

    这里写目录标题 Python中常用的ORM框架 peewee使用经验 从数据库中导出模型 查询 统计类查询 优化子查询 参考文章 Python中常用的ORM框架 SQLALchemy:重量级框架,适合 ...

最新文章

  1. css 选择器 伪元素_CSS伪元素-解释选择器之前和之后
  2. 实现Windows Phone、Android和iOS平台的统一硬件访问
  3. Cloud Foundry技术资料汇总
  4. mysql join大小表顺讯_MySQL优化器join顺序
  5. 佳明245接收微信消息
  6. boost::geometry::index::detail::union_content用法的测试程序
  7. 逻辑回归算法_算法逻辑回归
  8. html显示mysql图片路径_MySQL MySQL 直接存储图片并在 html 页面中展示,点击下载 _好机友...
  9. Bootstrap HTML 编码规范之布尔型属性
  10. request.setAttribute()与request.getAttribute()取值问题
  11. Flash 应用:大智慧flash版本
  12. 《OpenDRIVE1.6规格文档》1
  13. WebStorm的下载与安装
  14. EasyCVR使用大华SDK接入时录像显示失败是什么原因?该如何解决?
  15. ikbc pocker键盘 快捷键说明
  16. 拼多多砍价用户福利贴:通过python模拟操作进行拼多多砍价
  17. 常用的Java Web框架简介
  18. 微信小程序开发之——mpvue开发小程序
  19. 如何构建用户评分体系
  20. 清华EMBA课程系列思考之七 -- 财务会计控制

热门文章

  1. Android Lazy url
  2. 十几个NPM恶意包劫持 Discord 服务器
  3. Elasticsearch 架构原理—— 新数据写入过程
  4. day1: python3.5学习
  5. Jenkins任务优先分配到原来的执行节点上
  6. 广度优先搜索算法(Breath-first Search)是如何搜索一张图的?
  7. Linux中zip和tar处理软链接的差异与选择
  8. Ev Dekorasyonu
  9. 使用Tslib在触摸屏上显示汉字【转】
  10. 阿里云上线镜像平台 小白用户轻松上云