使用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 ...
随机推荐
- react-navigation 做导航栏,发现 Android 上的标题不居中
在做 React Native 应用的时候,我们常常使用 react-navigation 做导航栏,发现 Android 上的标题不居中,IOS 上没问题. 1 如果只有标题,那就在 headerT ...
- 剑指Offer(三十四):第一个只出现一次的字符
剑指Offer(三十四):第一个只出现一次的字符 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net ...
- Kotlin泛型与协变及逆变原理剖析
在上一次https://www.cnblogs.com/webor2006/p/11234941.html中学习了数据类[data class]相关的知识,这次会学习关于泛型相关的东东,其中有关于泛型 ...
- WCF 学习系列——WCF的学习基础
这个系列的博客由WCF4 高级编程学习记录,如有错误请指正. 首先介绍一些概念: SOA: (Service-Oriented Architecture 面向服务架构),一种架构方法,也是一种编程模式 ...
- discuz论坛门户资讯入库接口【原创】
最近想打造一个社区门户站点,所以写了这个入库接口,可以对接数据入库. <?php /* * Discuz x3.2 门户免登陆发布接口 * 2018-08-10 * Copyright 68xi ...
- keras模块学习之-目标函数(objectives)笔记
本笔记由博客园-圆柱模板 博主整理笔记发布,转载需注明,谢谢合作! 目标函数又称损失函数(loss),目的是计算神经网络的输出与样本标记的差的一种方法,如: model = Sequential() ...
- 七.Protobuf3 嵌套类型
Protobuf3 嵌套类型 您可以在其他消息类型中定义和使用消息类型,如下例所示:这里Result消息是在SearchResponse消息中定义的: message SearchResponse { ...
- 洛谷-P2661 信息传递——有向图中的最小环
题意 给定一个 $n$ 个结点有向图,求其中最小环的大小.($n \leq 200000$). 分析 由于每条点出度都为1且满足传递性,可以用并查集做. 如果有一条从x到y的有向边,那么y就是x的父亲 ...
- PAT1059Prime Factors
1059 Prime Factors (25分) Given any positive integer N, you are supposed to find all of its prime f ...
- 【转发】c#做端口转发程序支持正向连接和反向链接
可以通过中转server来连接sql server,连接的时候用ip,port,不是冒号,是逗号 但试过local port 21想连接AS400的FTP却不成功...为咩涅... https://w ...