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的更多相关文章

  1. Dapper扩展之~~~Dapper.Contrib

    平台之大势何人能挡? 带着你的Net飞奔吧!http://www.cnblogs.com/dunitian/p/4822808.html#skill 上一篇文章:Dapper逆天入门~强类型,动态类型 ...

  2. 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 ...

  3. Dapper.Contrib——更加优雅地使用Dapper进行增删改查

    简介 Dapper是介于Entity framework与ADO的折中选择.既满足手写查询的高性能需求,又简化了数据库对象映射为内存对象的繁杂工作.Dapper.Contrib是对Dapper的进一步 ...

  4. Dapper.Contrib拓展及数据库生成实体

    1.关于Dapper.Contrib Dapper.Contrib是Dapper的一个拓展类库,Dapper是一个轻量级ORM框架,这个不了解的请自行收集资料,本文主要讲讲,数据库生成实体,并通过实体 ...

  5. EF架构~Dapper.Contrib不能将Linq翻译好发到数据库,所以请不要用它

    回到目录 对于Dapper是一个轻量级的数据访问框架,而需要使用者去自己做SQL,它,只是一个数据访问者! 对些,Dapper推出了Contrib扩展包,它可以友好的让开发人员使用linq,而不需要写 ...

  6. 使用Dapper.Contrib 开发.net core程序,兼容多种数据库

    关于Dapper的介绍,我想很多人都对它有一定的了解,这个类似一个轻型的ORM框架是目前应用非常火的一个东西,据说各方面的性能都不错,而且可以支持多种数据库,在开始介绍这个文章之前,我花了不少功夫来学 ...

  7. DapperExtensions and Dapper.Contrib在表构架不是默认dbo时的处理 DapperExtensions and Dapper.Contrib with non-dbo Schema

    什么是数据库的Schema dbo是一个构架(schema),与sql2000不同的是,在sql2005中,表的调用格式如下:"数据库名.构架名.表名",同一个用户可以被授权访问多 ...

  8. Dapper.Contrib.Extensions问题

    Dapper.Contrib.Extensions问题 Dapper.Extension.1.0.0.1\lib\net45\Dapper.Extension.dll Dapper.Contrib.1 ...

  9. SQL 横转竖 、竖专横 (转载) 使用Dapper.Contrib 开发.net core程序,兼容多种数据库 C# 读取PDF多级书签 Json.net日期格式化设置 ASPNET 下载共享文件 ASPNET 文件批量下载 递归,循环,尾递归 利用IDisposable接口构建包含非托管资源对象 《.NET 进阶指南》读书笔记2------定义不可改变类型

    SQL 横转竖 .竖专横 (转载)   普通行列转换 问题:假设有张学生成绩表(tb)如下: 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 ...

  10. VS2017 MVC项目,新建控制器提示未能加载文件或程序集“Dapper.Contrib解决方法

    VS2017中MVC项目中,右键新建控制器时,提示 未能加载文件或程序集“Dapper.Contrib, Version=1.50.0.0, Culture=neutral, PublicKeyTok ...

随机推荐

  1. Bash基础——工作管理(Job control)

    注:1.这里说的Bash不单纯的指Bash,泛指shell 2.这里的后台指的是Bash下面避免任务(Jobs)被Ctrl+C中断的一种场景,与我们说的deamon那种后台工作的进程不是一个概念,注意 ...

  2. IP和网络互联

    IP和网络互联 IP网络互连机制: IP地址分类方法及原因: CIDR地址(无分类地址): IP分组首部格式: 数据分片方法: IP分组传输思路:

  3. substr()用法

    知识点链接:http://www.cplusplus.com/reference/string/string/substr/ 注意: std::string str2 = str.substr (po ...

  4. JVM那些事儿之内存区域

    相信绝大多数java开发者或多或少的都应该知道jvm,但是有多少人又深入去了解过,笔者深感自身能力的不足,去看了些资料,觉得还是有必要整理下自己的学习记录,时常回头看看,多看多实践提升自己的能力,故开 ...

  5. html页面标记 点击目录跳转到页面相应位置 简易回到顶部

    html页面标记 点击目录跳转到页面相应位置 简易回到顶部  参考博客:

  6. 浅析 pagehelper 分页

    之前项目一直使用的是普元框架,最近公司项目搭建了新框架,主要是由公司的大佬搭建的,以springboot为基础.为了多学习点东西,我也模仿他搭了一套自己的框架,但是在完成分页功能的时候,确遇到了问题. ...

  7. iframe使用总结(实战)

    说在前面的话,iframe是可以做很多事情的.例如:a>通过iframe实现跨域;b>使用iframe解决IE6下select遮挡不住的问题c>通过iframe解决Ajax的前进后退 ...

  8. nmap 排除某端口进行扫描

    --exclude-ports (Exclude the specified ports from scanning) https://nmap.org/book/man-port-specifica ...

  9. C# 接收C++ dll 可变长字节或者 字符指针 char*

    网络上查找到的几乎都是 需要提前固定知道 接收字符(字节)数据的大小的方式,现在的数据大小方式 不需要提前知道如下 思路: 1 .C++,返回变长 指针或者字节 的地址给C# 接收,同时返回 该地址的 ...

  10. Spring入门(二)——DI

    1. DI Dependency Injection,依赖注入.当对象里有属性或对象的时候,就需要为这些属性或对象赋值 2. 流程 这里介绍两种方式 set方法 注解方式 2.1 set方法 Bean ...