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

  • 相关阅读:
    jQuery的deferred对象详解
    MySQL主从复制与读写分离
    MySQL和MongoDB的性能测试
    MongoDB与MySQL的插入性能测试【转】
    mongodb+php通过_id查询
    MongoDB资料汇总专题
    mongodb常用命令
    【Mongodb教程 第十九课 】PHP与MONGODB的条件查询
    【Mongodb教程 第十八课 】MongoDB常用命令 数据库命令 集合操作命令
    mongoVUE 破解方法
  • 原文地址:https://www.cnblogs.com/shy1766IT/p/11372247.html
Copyright © 2020-2023  润新知