zoukankan      html  css  js  c++  java
  • 使用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

  • 相关阅读:
    .net core3.1 使用log4日志
    windows 使用IIS 部署 .net core3.1
    EntityFramework 延时加载、事务、导航属性
    EntityFramework EF状态跟踪和各种查询
    EF查看SQL2种方式 和 映射
    Sql Server 逻辑文件 '' 不是数据库 '' 的一部分。请使用 RESTORE FILELISTONLY 来列出逻辑文件名。
    async和await
    线程异常处理和取消和线程锁
    Task和TaskFactory
    thread:线程等待,回调
  • 原文地址:https://www.cnblogs.com/shy1766IT/p/11372247.html
Copyright © 2011-2022 走看看