zoukankan      html  css  js  c++  java
  • Dapper Helper

    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 0;
                }
            }
            /// <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 0;
                }
            }
    
            #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
        }
    }
  • 相关阅读:
    [读书笔记]捉虫日记
    花生壳建站全过程
    (step4.3.9)hdu 1584(蜘蛛牌——DFS)
    鼠标移到导航上面 当前的LI变色 处于当前的位置
    JavaScript学习笔记
    由Maximum Gap,对话桶排序,基数排序和统计排序
    安德鲁斯Launcher得到的装在手机的应用程序列表
    broadAnywhere:Broadcast组件权限绕过漏洞(Bug: 17356824)
    Ubuntu logomaker sh: 1: pngtopnm: not found 解决方案
    HDU 1598 find the most comfortable road (罗列+Kruskal) 并检查集合
  • 原文地址:https://www.cnblogs.com/webenh/p/7894646.html
Copyright © 2011-2022 走看看