使用Dapper.Contrib

摘要:
publicTQuery(stringsql,objectparam){using(IDbConnectiondbConnection=Connection){if(dbConnection.State==ConnectionState.Closed){dbConnection.Open();}varresult=dbConnection.QueryFirstOrDefault(sql,pa
 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) > 0;
                dbConnection.Close();
            }
            return result;
        }
        public bool Insert(T entity, IDbConnection dbConnection, IDbTransaction transaction = null)
        {
            bool result = dbConnection.Insert(entity, transaction) > 0;
            return result;
        }

参照:

https://www.cnblogs.com/wuhuacong/p/9952900.html

免责声明:文章转载自《使用Dapper.Contrib》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇PDA简介2005数据库脚本在SQL2000上执行下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

oracle语句

1.增加主键alter table TABLE_NAME add constraint KEY_NAME primary key (TABLE_COLUMN);指定表空间alter table TABLE_NAME add constraint KEY_NAME primary key (TABLE_COLUMN) using index tablespac...

spark性能调优06-数据倾斜处理

1、数据倾斜 1.1 数据倾斜的现象 现象一:大部分的task都能快速执行完,剩下几个task执行非常慢 现象二:大部分的task都能快速执行完,但总是执行到某个task时就会报OOM,JVM out of Memory,task faild,task lost,resubmitting task等错误 1.2 出现的原因 大部分task分配的数据很少(某...

二、实践与视频解决方案

一、视频解决方案 说明: 公司下户拍摄视频,上传存储一直用的优酷云(视频压缩、解码、播放)当然还支持水印。 现在场景,我们公司内部买服务器,下户拍摄视频上传到我们自己服务内,需要解决的问题,下户拍摄视频很大,需要解决的问题: 1、(下户视频过大)需要压缩处理、 2、(视频格式、播放帧处理)解码格式 3、(提供url)提供接口让内部人员可以播放  解决方案1...

kotlin 集合

一、List 1. var list1 = listOf(1, 3, 5) // println(list1.map { it * 10 })//[10, 30, 50] //筛选list println(list1.filter { it>3 }) //[5] //筛选list 后的个数 pr...

re库的使用

一、re库的调用 import re 二、正则表达式类型 raw string类型(原生字符串类型,即不包括转义符类型):r'text' string类型,更繁琐。 三、Re库主要功能函数 函数              说明 re.search()        在一个字符串中搜索匹配正则表达式的第一个位置,然后返回match对象 re.match(...

C# DataGridView控件中数据导出到Excel

方法一: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Form...