使用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) > 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

posted @ 2019-08-18 14:03  BloggerSb  阅读(596)  评论(0编辑  收藏  举报