.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数据 ...
随机推荐
- SSM 整合配置以及一个简单登陆案例(个人记录)
SSM 文件以及大部分参考博客 https://blog.csdn.net/qq598535550/article/details/51703190 简答的登陆注册案例下载链接在末尾补贴图了 我建立的 ...
- mybaits-plus总结
import java.math.BigDecimal; import java.util.Arrays; import java.util.Date; import java.util.List; ...
- 从高通出重拳,iPhone遭禁售看巨头们的专利大战
一直以来,高通看起来都是很有"骨气"的.面对与苹果的专利纷争,高通始终是据理力争.顽强对抗.截至今年6月中旬,高通和苹果打了50多场专利官司,且这些官司分布于6个不同国家的16个司 ...
- JS - input输入框点击回车提交或者进行别的操作
$("input").keydown(function(event){ if (event.keyCode == 13) { /* 提交或者别的操作 */ } }) ...
- Liunx用户运行模式
运行模式也可以称之为运行级别(Running Level). 在linux中存在一个进程:init (initialize,初始化),进程id是1. [he@localhost ~]$ ps -ef ...
- 【转】R函数-diag()函数
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/lili_wuwu/article/det ...
- ActiveMQ持久化机制和JMS可靠消息
1.ActiveMQ持久化机制 1.1 JDBC将数据持久化到数据库 1.2 AMQ生成日志文件 1.3 KahaDB:本次磁盘生成数据文件(默认) 1.4 LevelDB:谷歌K/V数据库 1.5 ...
- SQL Server 语法大全
SQL语句参考,包含Access.MySQL 以及 SQL Server 基础 创建数据库 CREATE DATABASE database-name 删除数据库 drop database dbna ...
- 【转载】RobotFramework的Setup或Teardowm中执行多个关键字
有时候需要在setup和teardowm中执行多个关键字 以前的做法就是重新封装一个keyword,然后调用,It’s OK 这里介绍另外一个方法,使用Run Keywords来实现 用法其实非常的简 ...
- python---生成式
1.[(x,y) for x in [1,2,3] for y in [4,2,3] if x == y] (x,y):输出表达式,产生最终列表的元素 for x in [1,2,3] for y i ...