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