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
        }
    }
  • 相关阅读:
    微软企业库调用Oracle存储过程返回(1个或多个)数据集
    (转)Oracle表空间
    HTML5操作
    完美实现 ASP.NET 2.0 中的URL重写伪静态(映射) &gt;(转载)的简介与内容
    HTML5 audio 详解
    步步为营:Asp.Net使用HttpWebRequest通知,抓取,采集(转)
    js cookie操作
    多线线程
    js with用法
    asp.net AllowSorting="true"仍然不能排序的原因
  • 原文地址:https://www.cnblogs.com/webenh/p/7894646.html
Copyright © 2011-2022 走看看