使用Dapper.Contrib
public T Query(string sql, object param)
{
using (IDbConnection dbConnection = Connection)
{
if (dbConnection.State == ConnectionState.Closed)
{
dbConnection.Open();
}
var result= dbConnection.QueryFirstOrDefault<T>(sql, param);
dbConnection.Close();
return result;
} } /// <summary>
/// 多用于事务
/// </summary>
/// <param name="dbConnection"></param>
/// <param name="sql"></param>
/// <param name="param"></param>
/// <param name="transaction"></param>
/// <returns></returns>
public T Query(IDbConnection dbConnection, string sql, object param, IDbTransaction transaction = null)
{
return dbConnection.QueryFirstOrDefault<T>(sql, param, transaction);
} public async Task<T> QueryAsync(string sql, object param)
{
using (IDbConnection dbConnection = Connection)
{
if (dbConnection.State == ConnectionState.Closed)
{
dbConnection.Open();
}
var result= await dbConnection.QueryFirstOrDefaultAsync<T>(sql, param);
dbConnection.Close();
return result;
}
}
public async Task<T> QueryAsync(IDbConnection dbConnection, string sql, object param, IDbTransaction transaction = null)
{
return await dbConnection.QueryFirstOrDefaultAsync<T>(sql, param, transaction);
} public IList<T> QueryToList(string sql, object param)
{
using (IDbConnection dbConnection = Connection)
{
if (dbConnection.State == ConnectionState.Closed)
{
dbConnection.Open();
}
var result = dbConnection.Query<T>(sql, param).ToList();
dbConnection.Close();
return result;
}
}
public IList<T> QueryToList<T>(string sql, object param)
{
using (IDbConnection dbConnection = Connection)
{
if (dbConnection.State == ConnectionState.Closed)
{
dbConnection.Open();
}
var result = dbConnection.Query<T>(sql, param).ToList();
dbConnection.Close();
return result;
}
}
public IList<T> QueryToList(IDbConnection dbConnection, string sql, object param, IDbTransaction transaction = null)
{
return dbConnection.Query<T>(sql, param, transaction).ToList();
}
public async Task<IList<T>> QueryToListAsync(string sql, object param)
{
using (IDbConnection dbConnection = Connection)
{
if (dbConnection.State == ConnectionState.Closed)
{
dbConnection.Open();
}
var result = (await dbConnection.QueryAsync<T>(sql, param)).ToList();
dbConnection.Close();
return result;
}
} public async Task<IList<T>> QueryToListAsync<T>(string sql, object param)
{
using (IDbConnection dbConnection = Connection)
{
if (dbConnection.State == ConnectionState.Closed)
{
dbConnection.Open();
}
var result = (await dbConnection.QueryAsync<T>(sql, param)).ToList();
dbConnection.Close();
return result;
}
} public async Task<IList<T>> QueryToListAsync(IDbConnection dbConnection, string sql, object param, IDbTransaction transaction = null)
{
return (await dbConnection.QueryAsync<T>(sql, param, transaction)).ToList();
}
/// <summary>
/// 查询数据库,返回指定ID的对象
/// </summary>
/// <param name="id">主键的值</param>
/// <returns></returns>
public T FindById(object id)
{
using (IDbConnection dbConnection = Connection)
{
if (dbConnection.State == ConnectionState.Closed)
{
dbConnection.Open();
}
var result = dbConnection.Get<T>(id);
dbConnection.Close();
return result;
}
}
public T FindById(IDbConnection dbConnection, object id, IDbTransaction transaction = null)
{
return dbConnection.Get<T>(id, transaction);
}
public T GetById(int id)
{
using (IDbConnection dbConnection = Connection)
{
if (dbConnection.State == ConnectionState.Closed)
{
dbConnection.Open();
}
var result = dbConnection.Get<T>(id);
dbConnection.Close();
return result;
}
}
public T GetById(IDbConnection dbConnection, int id, IDbTransaction transaction = null)
{
return dbConnection.Get<T>(id, transaction);
} public async Task<T> GetByIdAsync(int id)
{
using (IDbConnection dbConnection = Connection)
{
if (dbConnection.State == ConnectionState.Closed)
{
dbConnection.Open();
}
var result= await dbConnection.GetAsync<T>(id);
dbConnection.Close();
return result;
}
}
public async Task<T> GetByIdAsync(IDbConnection dbConnection, int id, IDbTransaction transaction = null)
{
return await dbConnection.GetAsync<T>(id, transaction);
}
/// <summary>
/// 查询数据库,返回指定ID的对象
/// </summary>
/// <param name="id">主键的值</param>
/// <returns></returns>
public async Task<T> FindByIdAsync(object id)
{
using (IDbConnection dbConnection = Connection)
{
if (dbConnection.State == ConnectionState.Closed)
{
dbConnection.Open();
}
var result= await dbConnection.GetAsync<T>(id);
dbConnection.Close();
return result;
}
}
public async Task<T> FindByIdAsync(IDbConnection dbConnection, object id, IDbTransaction transaction = null)
{
return await dbConnection.GetAsync<T>(id, transaction);
}
/// <summary>
/// 插入返回主键
/// </summary>
/// <param name="sql"></param>
/// <param name="param"></param>
/// <returns>
/// //string sql = @"Insert into users (UserName) values (@name);
/// //object param=new Object(){ name = member.UserName}
/// </returns>
public async Task<int> InsertedIdAsync(string sql, object param = null)
{
using (IDbConnection dbConnection = Connection)
{
if (dbConnection.State == ConnectionState.Closed)
{
dbConnection.Open();
}
sql = sql.TrimEnd(';') + ";select LAST_INSERT_ID()";
var result= await dbConnection.ExecuteScalarAsync<int>(sql, param);
dbConnection.Close();
return result;
}
}
public async Task<int> InsertedIdAsync(IDbConnection dbConnection, string sql, object param = null, IDbTransaction transaction = null)
{
sql=sql.TrimEnd(';') +";select LAST_INSERT_ID()";
return await dbConnection.ExecuteScalarAsync<int>(sql, param, transaction);
}
public int InsertedId(string sql, object param = null)
{
using (IDbConnection dbConnection = Connection)
{
if (dbConnection.State == ConnectionState.Closed)
{
dbConnection.Open();
}
sql = sql.TrimEnd(';') + ";select LAST_INSERT_ID()";
var result= dbConnection.ExecuteScalar<int>(sql, param);
dbConnection.Close();
return result;
}
}
public int InsertedId(IDbConnection dbConnection, string sql, object param = null, IDbTransaction transaction = null)
{
sql = sql.TrimEnd(';') + ";select LAST_INSERT_ID()";
return dbConnection.ExecuteScalar<int>(sql, param, transaction);
} public IList<T> GetAll()
{
using (IDbConnection dbConnection = Connection)
{
if (dbConnection.State == ConnectionState.Closed)
{
dbConnection.Open();
}
var result = dbConnection.GetAll<T>().ToList();
dbConnection.Close();
return result;
}
}
public IList<T> GetAll(IDbConnection dbConnection, IDbTransaction transaction = null)
{
return dbConnection.GetAll<T>(transaction).ToList();
} public async Task<IList<T>> GetAllAsync()
{
using (IDbConnection dbConnection = Connection)
{
if (dbConnection.State == ConnectionState.Closed)
{
dbConnection.Open();
}
var result = (await dbConnection.GetAllAsync<T>()).ToList();
dbConnection.Close();
return result;
}
}
public async Task<IList<T>> GetAllAsync(IDbConnection dbConnection, IDbTransaction transaction = null)
{
return (await dbConnection.GetAllAsync<T>(transaction)).ToList();
} public bool Insert(T entity)
{
bool result = false;
using (IDbConnection dbConnection = Connection)
{
if (dbConnection.State == ConnectionState.Closed)
{
dbConnection.Open();
}
result = dbConnection.Insert(entity) > ;
dbConnection.Close();
}
return result;
}
public bool Insert(T entity, IDbConnection dbConnection, IDbTransaction transaction = null)
{
bool result = dbConnection.Insert(entity, transaction) > ;
return result;
}
参照:
https://www.cnblogs.com/wuhuacong/p/9952900.html
使用Dapper.Contrib的更多相关文章
- Dapper扩展之~~~Dapper.Contrib
		平台之大势何人能挡? 带着你的Net飞奔吧!http://www.cnblogs.com/dunitian/p/4822808.html#skill 上一篇文章:Dapper逆天入门~强类型,动态类型 ... 
- Dapper.Contrib:GetAsync<T> only supports an entity with a [Key] or an [ExplicitKey] property
		异常处理:http://www.cnblogs.com/dunitian/p/4523006.html#dapper 原来Model是这样滴 修改后是这样滴 注意点:Model里面的Table和Key ... 
- Dapper.Contrib——更加优雅地使用Dapper进行增删改查
		简介 Dapper是介于Entity framework与ADO的折中选择.既满足手写查询的高性能需求,又简化了数据库对象映射为内存对象的繁杂工作.Dapper.Contrib是对Dapper的进一步 ... 
- Dapper.Contrib拓展及数据库生成实体
		1.关于Dapper.Contrib Dapper.Contrib是Dapper的一个拓展类库,Dapper是一个轻量级ORM框架,这个不了解的请自行收集资料,本文主要讲讲,数据库生成实体,并通过实体 ... 
- EF架构~Dapper.Contrib不能将Linq翻译好发到数据库,所以请不要用它
		回到目录 对于Dapper是一个轻量级的数据访问框架,而需要使用者去自己做SQL,它,只是一个数据访问者! 对些,Dapper推出了Contrib扩展包,它可以友好的让开发人员使用linq,而不需要写 ... 
- 使用Dapper.Contrib 开发.net core程序,兼容多种数据库
		关于Dapper的介绍,我想很多人都对它有一定的了解,这个类似一个轻型的ORM框架是目前应用非常火的一个东西,据说各方面的性能都不错,而且可以支持多种数据库,在开始介绍这个文章之前,我花了不少功夫来学 ... 
- DapperExtensions and Dapper.Contrib在表构架不是默认dbo时的处理  DapperExtensions and Dapper.Contrib with non-dbo Schema
		什么是数据库的Schema dbo是一个构架(schema),与sql2000不同的是,在sql2005中,表的调用格式如下:"数据库名.构架名.表名",同一个用户可以被授权访问多 ... 
- Dapper.Contrib.Extensions问题
		Dapper.Contrib.Extensions问题 Dapper.Extension.1.0.0.1\lib\net45\Dapper.Extension.dll Dapper.Contrib.1 ... 
- SQL 横转竖 、竖专横 (转载)  使用Dapper.Contrib 开发.net core程序,兼容多种数据库  C# 读取PDF多级书签  Json.net日期格式化设置  ASPNET 下载共享文件  ASPNET 文件批量下载  递归,循环,尾递归   利用IDisposable接口构建包含非托管资源对象 《.NET 进阶指南》读书笔记2------定义不可改变类型
		SQL 横转竖 .竖专横 (转载) 普通行列转换 问题:假设有张学生成绩表(tb)如下: 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 ... 
- VS2017 MVC项目,新建控制器提示未能加载文件或程序集“Dapper.Contrib解决方法
		VS2017中MVC项目中,右键新建控制器时,提示 未能加载文件或程序集“Dapper.Contrib, Version=1.50.0.0, Culture=neutral, PublicKeyTok ... 
随机推荐
- idea  模板
			/** * @author sharplee * @version 1.0.0 * @ClassName ${PACKAGE_NAME}.${NAME} * @Description * @creat ... 
- python中while循环的基本使用
			一.while循环 while 条件: 如果条件为True,会一直循环 代码块(循环体) else: 当上面的条件为假.才会执行 执行顺序:判断条件是否为真.如果真,执行循环 ... 
- 网站检测空链、死链工具(Xenu)
			网站常用检测空链.死链工具,Xenu是很小但是功能强大的检查网站404链接的软件,支持多线程,无需安装可直接打开使用.步骤如下: 网站的链接一般都成千上万,如果存在大量的空链接将大大的影响用户体验,怎 ... 
- 大数据之路week07--day06 (Sqoop 在从HDFS中导出到关系型数据库时的一些问题)
			问题一: 在上传过程中遇到这种问题: ERROR tool.ExportTool: Encountered IOException running export job: java.io.IOExce ... 
- 原生js获取display属性注意事项
			原生js获取diaplay属性需要在标签上写行间样式style='display:none/block;' <div style="display:block;">&l ... 
- spring+mybatis通用dao层、service层的实现
			个人理解: 1.mybatis-spring.jar 提供了SqlSessionTemplate类该类可以对数据库进行CRUD操作(底层其实还是SqlSession) 2.我们可以集成SqlSessi ... 
- c语言实现整数转换为字符串——不考虑负数
			#include <stdio.h> #include <string.h> #define MAX_LEN 16 #define ESP 1e-5 typedef int i ... 
- (尚014)Vue过渡与动画
			操作元素时有个过渡或动画的效果(渐变和移动的效果和放大缩小的效果) 过渡:trasition 动画:animation 1.vue动画的理解 1)操作css的trasition或animation(它 ... 
- learning java AWT 布局管理器 GridLayout
			GridLayout布局管理器将容器分割成纵横线分格的网格,每个网格所占的区域大小相同. import java.awt.*; public class GridLayoutTest { public ... 
- arm 环境下安装selenium+chrome
			1. 升级软件 apt-get update 2. 安装pip apt-get install python3-pip 3. 安装selenium pip3 install selenium .4. ... 
