using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Threading.Tasks;
using Dapper;
using Dapper.Contrib.Extensions; namespace Com.BPM.Forms
{
/// <summary>
/// Dapper Helper
/// create by ben.jiang 2017/5/21
/// </summary>
public partial class DapperDataAsync
{
/// <summary>
/// DB Connetction String
/// </summary>
private static string connectionString = ConfigurationManager.ConnectionStrings["Movitech"].ToString();
/// <summary>
/// Get Entity (int key)
/// </summary>
public static async Task<T> GetAsync<T>(int id, IDbTransaction transaction = null, int? commandTimeout = null) where T : class, new()
{
try
{
using (var conn = new SqlConnection(connectionString))
{
return await conn.GetAsync<T>(id, transaction, commandTimeout);
}
}
catch (Exception ex)
{
SystemLog.WriteError(ex);
return null;
}
}
/// <summary>
/// Get Entity (long key)
/// </summary>
public static async Task<T> GetAsync<T>(long id, IDbTransaction transaction = null, int? commandTimeout = null) where T : class, new()
{
try
{
using (var conn = new SqlConnection(connectionString))
{
return await conn.GetAsync<T>(id, transaction, commandTimeout);
}
}
catch (Exception ex)
{
SystemLog.WriteError(ex);
return null;
}
}
/// <summary>
/// Get Entity (guid key)
/// </summary>
public static async Task<T> GetAsync<T>(System.Guid id, IDbTransaction transaction = null, int? commandTimeout = null) where T : class, new()
{
try
{
using (var conn = new SqlConnection(connectionString))
{
return await conn.GetAsync<T>(id, transaction, commandTimeout);
}
}
catch (Exception ex)
{
SystemLog.WriteError(ex);
return null;
}
}
/// <summary>
/// Get Entity (string key)
/// </summary>
public static async Task<T> GetAsync<T>(string id, IDbTransaction transaction = null, int? commandTimeout = null) where T : class, new()
{
try
{
using (var conn = new SqlConnection(connectionString))
{
return await conn.GetAsync<T>(id, transaction, commandTimeout);
}
}
catch (Exception ex)
{
SystemLog.WriteError(ex);
return null;
}
}
/// <summary>
/// Get All List
/// </summary>
public static async Task<IEnumerable<T>> GetAllAsync<T>() where T : class, new()
{
try
{
using (var conn = new SqlConnection(connectionString))
{
return await conn.GetAllAsync<T>();
}
}
catch (Exception ex)
{
SystemLog.WriteError(ex);
return null;
}
}
/// <summary>
/// Get List With SQL
/// </summary>
public static async Task<IEnumerable<T>> GetListAsync<T>(string sql) where T : class, new()
{
try
{
using (var conn = new SqlConnection(connectionString))
{
return await conn.QueryAsync<T>(sql, commandType: CommandType.Text);
}
}
catch (Exception ex)
{
SystemLog.WriteError(ex);
return null;
}
}
/// <summary>
/// Insert Entity
/// </summary>
public static async Task<int> InsertAsync<T>(T model, IDbTransaction transaction = null, int? commandTimeout = null) where T : class, new()
{
try
{
using (var conn = new SqlConnection(connectionString))
{
return await conn.InsertAsync<T>(model, transaction, commandTimeout);
}
}
catch (Exception ex)
{
SystemLog.WriteError(ex);
return ;
}
}
/// <summary>
/// Update Entity
/// </summary>
public static async Task<T> UpdateAsync<T>(T model, IDbTransaction transaction = null, int? commandTimeout = null) where T : class, new()
{
try
{
using (var conn = new SqlConnection(connectionString))
{
bool b = await conn.UpdateAsync<T>(model, transaction, commandTimeout);
if (b) { return model; }
else { return null; }
}
}
catch (Exception ex)
{
SystemLog.WriteError(ex);
return null;
}
}
/// <summary>
/// Delete Entity
/// </summary>
public static async Task<T> DeleteAsync<T>(T model, IDbTransaction transaction = null, int? commandTimeout = null) where T : class, new()
{
try
{
using (var conn = new SqlConnection(connectionString))
{
bool b = await conn.DeleteAsync<T>(model, transaction, commandTimeout);
if (b) { return model; }
else { return null; }
}
}
catch (Exception ex)
{
SystemLog.WriteError(ex);
return null;
}
}
/// <summary>
///Execute SQL Statement
/// </summary>
public static async Task<int> ExecSqlAsync<T>(string sql)
{
try
{
using (var conn = new SqlConnection(connectionString))
{
return await conn.ExecuteAsync(sql);
}
}
catch (Exception ex)
{
SystemLog.WriteError(ex);
return ;
}
} #region For Project
/// <summary>
/// Get Entity By ProcInstID
/// </summary>
public static async Task<T> GetByProcInstIdAsync<T>(string procInstId) where T : class, new()
{
try
{
string tbname = typeof(T).Name;
string sql = string.Format("SELECT * FROM {0} WHERE ProcInstID='{1}'", tbname, procInstId);
using (var conn = new SqlConnection(connectionString))
{
return await conn.QueryFirstOrDefaultAsync<T>(sql);
}
}
catch (Exception ex)
{
SystemLog.WriteError(ex);
return null;
}
}
#endregion
}
}

Dapper Helper的更多相关文章

  1. .net core Dapper for MySql

    Dapper 语法比较简单,效率也比较快,速度接近IDataReader 甚至读取数据超过了DataTable,建议在实际项目可以结合EntityFramework Core 一起使用. 一.创建My ...

  2. Dapper 的输出参数使用示范

    -- 普通SQL 示范-- Queries with output parameters. Hide Shrink Copy Code // output parameters // the para ...

  3. 让C#开发更简单,抽象增删改

    相信经常做一些MS,CRM 项目的童鞋非常有体会,大部分时间都是在复制和粘贴,大部分项目框架都是建一个三层,首先是DAL建一些增删改查,然后呢是BLL业务层再建一些增删改查,然后UI层再调用增删改查, ...

  4. 自己整理了一个 Dapper的Helper助手类

    链接字符串配置: <connectionStrings> <add name="db" connectionString="server=.;datab ...

  5. Dapper,大规模分布式系统的跟踪系统--转

    原文地址:http://bigbully.github.io/Dapper-translation/ 概述 当代的互联网的服务,通常都是用复杂的.大规模分布式集群来实现的.互联网应用构建在不同的软件模 ...

  6. ORM之轻量级框架--Dapper

    一.什么是Dapper? Dapper是一款轻量级Orm框架,它是属于半自动的,它和Entity Framework和NHibernate不同,它只有一个单文件,没有很复杂的配置,如果你喜欢原生Sql ...

  7. Dapper,大规模分布式系统的跟踪系统

    概述 当代的互联网的服务,通常都是用复杂的.大规模分布式集群来实现的.互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发.可能使用不同的编程语言来实现.有可能布在了几千台服务器 ...

  8. NetCore+Dapper WebApi架构搭建(一):基本框架

    初衷是想用dapper搭建一个高性能的架构,因为dapper操作数据库的效率很高 1.VS创建一个NetCore WebApi的框架,然后解决方案添加一个NetStandard的类库 整个解决方案如图 ...

  9. 【原创】打造基于Dapper的数据访问层

    [原创]打造基于Dapper的数据访问层   前言 闲来无事,花几天功夫将之前项目里用到的一个数据访问层整理了出来.实现单个实体的增删改查,可执行存储过程,可输出返回参数,查询结果集可根据实际情况返回 ...

随机推荐

  1. win32编程中消息循环和WndProc()窗口过程函数

    原文地址:https://blog.csdn.net/zxxSsdsd/article/details/45504383 在win32程序的消息循环函数中  while (GetMessage (&a ...

  2. Unity中的GC以及优化

    [简介] 常见的 Unity GC 知识点总结出来的思维导图 Unity 官方文档,正巧在博客园发现了已经有位大神(zblade)把原文翻译出来了,而且质量很高~,译文地址 在这里.下面我就可耻地把译 ...

  3. Java数据结构与算法解析(十二)——散列表

    散列表概述 散列表就是一种以 键-值(key-indexed) 存储数据的结构,我们只要输入待查找的值即key,即可查找到其对应的值. 散列表的思路很简单,如果所有的键都是整数,那么就可以使用一个简单 ...

  4. Python-爬虫-租房Ziroom

    目标站点需求分析 涉及的库 import requestsimport timeimport pymongofrom lxml import etreefrom requests.exceptions ...

  5. 用docker快速搭建wordpress博客

      WordPress是一个非常著名的PHP编写的博客平台,发展到目前为止已经形成了一个庞大的网站平台系统.在WP上有规模庞大的插件和主题,可以帮助我们快速建立一个博客甚至网站. 在Windows上可 ...

  6. hive学习02-累加

    求出当月的访问次数,截至当月前的每个月最大访问次数.截至当月前每个用户总的访问次数. 数据表如下 A,-, A,-, B,-, A,-, B,-, A,-, A,-, A,-, B,-, B,-, A ...

  7. deepin、Ubuntu安装Nginx

    deepin安装nginx 切换至root用户 su 密码: 基础库的安装 安装gcc g++的依赖库 sudo apt-get install build-essential && ...

  8. 移动端的dl

    https://blog.csdn.net/u013139259/article/details/52143240

  9. tensorflow(1) 基础: 神经网络基本框架

    1.tensorflow 的计算得到的是计算图graph import tensorflow as tf a=tf.constant([1.0,2.0]) b=tf.constant([3.0,4.0 ...

  10. AppServ安装到一半卡住的问题

    今天在笔记本安装AppServ的时候,运行到Installing mysql service时就卡住不动了,因为之前在自己的台式电脑安装过AppServ,当时是一步成功的,所以觉得这个问题莫名其妙,因 ...