.NET技术-2.0. 操作数据库-Dapper
.NET技术-2.0. 操作数据库-Dapper
项目参见:

1. 为什么选择Dapper
1) 性能优越:
其实在各大网站上,我们大概都会看到这样的一个对比效果图,在超过500次poco serialization的过程中所表现的性能,我们发现dapper是第二名,
当然第一名谁也无法超越,越底层的当然久越快,同时也就越麻烦。就好像谁能超过“01代码”呢???

2) 支持多数据库
支持多数据库的本质是因为Dapper是对IDBConnection接口进行了方法扩展,比如你看到的SqlMapper.cs,一旦你这样做了,我们也知道,
SqlConnection,MysqlConnection,OracleConnection都是继承于DBConnection,而DBConnection又是实现了IDBConnection的接口,对吧。。。

2. 安装 Dapper
Install-Package Dapper

3. 无事务的操作
IDbConnection connection = DB.Database.GetDbConnection();
//查询
var queryRes = connection.Query<TblOrder>("select * from tbl_order where amount=@amount", new { amount = "" }).ToList();
//新增
List<Models.TblOrder> list = new List<TblOrder>() {new TblOrder() { Amount = , Uptime= DateTime.Now, Order_Code = "", User_Id = ,Text="aaaa"},
new TblOrder() { Amount = , Uptime= DateTime.Now, Order_Code = "", User_Id = ,Text="bbbbb"},
new TblOrder() { Amount = , Uptime= DateTime.Now, Order_Code = "", User_Id = ,Text="ccccc"}};
string str = "INSERT INTO tbl_order (order_code,user_id,amount,uptime,text) VALUES(@order_code,@user_id,@amount,@uptime,@text)";
connection.Execute(str, list);
//修改
list = connection.Query<TblOrder>("select * from tbl_order where order_code=@order_code", new { order_code = "" }).ToList();
str = "UPDATE tbl_order SET Text='abcabc' where order_code=@order_code";
connection.Execute(str, list);
//删除
list = connection.Query<TblOrder>("select * from tbl_order order by id").ToList();
connection.Execute("delete from tbl_order where id =@id", list.Take().ToList());
4. 带事务的操作
using (IDbConnection connection = DB.Database.GetDbConnection())
{
connection.Open(); IDbTransaction transaction = connection.BeginTransaction();
try
{
//修改
var list = connection.Query<TblOrder>("select * from tbl_order where order_code=@order_code", new { order_code = "" }).ToList(); string str = "UPDATE tbl_order SET Text='开心开心' where order_code=@order_code"; connection.Execute(str, list,transaction); //删除
list = connection.Query<TblOrder>("select * from tbl_order order by id").ToList(); connection.Execute("delete from tbl_order where id =@id", list.Take().ToList(), transaction); transaction.Commit(); }
catch (Exception exception)
{
transaction.Rollback();
} }
引用:https://www.cnblogs.com/huangxincheng/p/5828470.html
.NET技术-2.0. 操作数据库-Dapper的更多相关文章
- .NET技术-2.0. 操作数据库-EF
.NET技术-2.0. 操作数据库-EF 项目参见: EF安装配置 参见: https://www.cnblogs.com/1285026182YUAN/p/10772330.html https:/ ...
- JDBC数据源(DataSource)数据源技术是Java操作数据库的一个很关键技术,流行的持久化框架都离不开数据源的应用。
JDBC数据源(DataSource)的简单实现 数据源技术是Java操作数据库的一个很关键技术,流行的持久化框架都离不开数据源的应用. 2.数据源提供了一种简单获取数据库连接的方式,并能在内部通 ...
- yii2.0操作数据库
首先不得不说yii2.0面向对象的比较彻底,建议没学过或者没学好面向对象的同学再看看面向对象. 其次切入正题. 先创建数据库,这步自己写. DROP TABLE IF EXISTS `country` ...
- VoltDB公布4.0版本号,大步提高内存实时分析速度,进军操作数据库市场
号称世界上最快的关系数据库的VoltDB与2014年1月29号(美国东部时间)公布下一代数据库4.0版本号.新的版本号有非常多地方的改进,大步挺高系统性能.在过去的13年,VoltdDB号称自己公司较 ...
- Asp.Net Core 2.0 项目实战(4)ADO.NET操作数据库封装、 EF Core操作及实例
Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...
- 下面介绍一下 Yii2.0 对数据库 查询的一些简单的操作
下面介绍一下 Yii2.0 对数据库 查询的一些简单的操作 User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的 ...
- Android学习之基础知识九 — 数据存储(持久化技术)之使用LitePal操作数据库
上一节学习了使用SQLiteDatabase来操作SQLite数据库的方法,接下来我们开始接触第一个开源库:LitePal.LitePal是一款开源的Android数据库框架,它采用了对象关系映射(O ...
- PowerDesigner逆向操作(从mysql5.0生成数据库的物理模型),把Comment写到name中,pdm文件导出为word
PowerDesigner逆向操作(从mysql5.0生成数据库的物理模型) 环境:powderdesigner12.5:mysql5.0步骤:1. 为指定的数据库配置mysql的ODBC数据源先下载 ...
- Power Designer逆向操作(从mysql5.0生成数据库的物理模型)
Power Designer逆向操作(从mysql5.0生成数据库的物理模型) 环境:powderdesigner12.5:mysql5.0 步骤: 1. 为指定的数据库配置MySQL的ODBC数据 ...
随机推荐
- Java 解决Emoji表情过滤问题
Emoji表情从三方数据中获取没有过滤,导致存入DB的时候报错. 原因: UTF-8编码有可能是两个.三个.四个字节.Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去 ...
- 《ES6标准入门》(阮一峰)--9.数组的扩展
1.扩展运算符 含义 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. console.log(...[1, 2, 3]) // 1 ...
- ArcoLinux安装完成后的的配置
ArcoLinux安装完成后的的配置 这可能是全网第一篇Arcolinux的教程 1. 更改源 修改/etc/pacman.d/mirrorlist 在最头上增加清华源 Server = https: ...
- P1042 字符统计
P1042 字符统计 转跳点:
- CodeForces - 862B Mahmoud and Ehab and the bipartiteness(二分图染色)
题意:给定一个n个点的树,该树同时也是一个二分图,问最多能添加多少条边,使添加后的图也是一个二分图. 分析: 1.通过二分图染色,将树中所有节点分成两个集合,大小分别为cnt1和cnt2. 2.两个集 ...
- Docker常用命令,Docker安装Nginx、Redis、Jenkins、tomcat、MySQL
常用命令 拉取镜像:docker pull xxx启动镜像:docker run --name xxx 8080:8080 -d xxx查看容器:docker ps xxx 停止容器:docker s ...
- 指令——df
df是disk free 的简称,这个指令的功能和作用是查看磁盘空间. 可以加上 -h 的选项,来提高可读性. [he@localhost ~]$ df -h文件系统(磁盘名称) 总容量 ...
- 二十七、SAP中通过以字段的形式输出内容
一.输出时,需要加入关键词sy-vline,代码如下 二.效果如下
- 027-PHP编码和解码函数base64
<?php $data = "我爱PHP";//解码前的值 print("我爱PHP: " . base64_encode($data)); //进行解码 ...
- 第三节MapStruct翻译--Defining a mapper
第三节MapStruct--Defining a mapper 在这一章节你将学到如何用mapstruct和它的一些必要的操作选项来定义一个bean mapper. 3.1 Basic mapping ...