using learun.util; using System.Collections.Generic; using System.Data; using System.Threading.Tasks; namespace learun.database { /// /// 版 本 EasyCode EC管理后台 /// Copyright (c) 2019-present EC管理有限公司 /// 创建人:tobin /// 日 期:2019.09.10 /// 描 述:数据库接口类 /// public class Repository : IRepository { #region 构造 /// /// 数据库操作接口 /// public IDataBase db; /// /// 构造函数 /// /// public Repository(IDataBase idatabase) { this.db = idatabase; } #endregion 构造 #region 事务 /// /// 开始事务 /// /// public IRepository BeginTrans() { db.BeginTrans(); return this; } /// /// 提交 /// public void Commit() { db.Commit(); } /// /// 回滚 /// public void Rollback() { db.Rollback(); } #endregion 事务 #region 执行sql语句 /// /// 执行sql语句(带参数) /// /// sql语句 /// 参数 /// public Task ExecuteSql(string strSql, object param = null) { return this.db.ExecuteSql(strSql, param); } #endregion 执行sql语句 #region 执行存储过程 /// /// 执行存储过程 /// /// 存储过程名称 /// 参数 /// public Task ExecuteProc(string procName, object param = null) { return this.db.ExecuteProc(procName, param); } /// /// 执行存储过程(查询实体数据) /// /// 存储过程名称 /// 参数 /// public Task ExecuteProc(string procName, object param = null) where T : class { return this.db.ExecuteProc(procName, param); } /// /// 执行存储过程(查询实体数据) /// /// /// 存储过程名称. /// 参数 public Task QueryFirstProc(string procName, object param = null) { return this.db.QueryFirstProc(procName, param); } /// /// 执行存储过程(获取列表数据) /// /// 存储过程名称 /// 参数 /// public Task> QueryProc(string procName, object param = null) where T : class { return this.db.QueryProc(procName, param); } /// /// 执行存储过程(获取列表数据) /// /// 存储过程名称 /// 参数 /// public Task> QueryProc(string procName, object param = null) { return this.db.QueryProc(procName, param); } #endregion 执行存储过程 #region 对像实体 新增/修改/删除 /// /// 插入实体数据 /// /// 类型 /// 实体数据 /// public Task Insert(T entity) where T : class { return this.db.Insert(entity); } /// /// 更新实体数据 /// /// /// 实体数据 /// 是否只更新有值的字段 /// 类型 public Task Update(T entity, bool isOnlyHasValue = true) where T : class { return this.db.Update(entity, isOnlyHasValue); } /// /// 删除实体数据 /// /// /// 实体数据 /// 类型 public Task Delete(T entity) where T : class { return this.db.Delete(entity); } /// /// 删除数据根据给定的字段值 /// /// /// 参数 /// 类型 public Task DeleteAny(object param) where T : class { return this.db.DeleteAny(param); } #endregion 对像实体 新增/修改/删除 #region 对象实体查询 /// /// 获取单个实体数据 /// /// 单个实体数据 /// 主键 /// public Task FindEntityByKey(object keyValue) where T : class { return this.db.FindEntityByKey(keyValue); } /// /// 获取单个实体数据 /// /// 单个实体数据 /// sql语句 /// 参数 /// public Task FindEntity(string sql, object param = null) where T : class { return this.db.FindEntity(sql, param); } /// /// 获取单个实体数据 /// /// 单个实体数据 /// 参数 /// public Task FindEntity(object param) where T : class { return this.db.FindEntity(param); } /// /// 获取单个实体数据 /// /// 单个实体数据 /// sql语句. /// 参数. public Task FindEntity(string sql, object param = null) { return this.db.FindEntity(sql, param); } /// /// 获取数据列表 /// /// 列表数据 /// sql语句. /// 参数. /// 类型. public Task> FindList(string sql, object param = null) where T : class { return this.db.FindList(sql, param); } /// /// 获取数据列表 /// /// 列表数据 /// 参数. /// 类型. public Task> FindList(object param) where T : class { return this.db.FindList(param); } /// /// 获取数据列表 /// /// 列表数据 /// sql语句. /// 参数. public Task> FindList(string sql, object param = null) { return this.db.FindList(sql, param); } /// /// 获取数据列表(分页) /// /// 列表数据 /// sql语句 /// 参数 /// 排序字段 /// 排序类型 /// 每页数据条数 /// 页码 /// public Task<(IEnumerable list, int total)> FindList(string sql, object param, string orderField, bool isAsc, int pageSize, int pageIndex) where T : class { return this.db.FindList(sql, param, orderField, isAsc, pageSize, pageIndex); } /// /// 获取数据列表(分页) /// /// /// sql语句 /// 参数 /// 分页参数 /// public Task> FindList(string sql, object param, Pagination pagination) where T : class { return this.db.FindList(sql, param, pagination); } /// /// 获取数据列表(分页) /// /// 列表数据 /// sql语句 /// 参数 /// 排序字段 /// 排序类型 /// 每页数据条数 /// 页码 public Task<(IEnumerable list, int total)> FindList(string sql, object param, string orderField, bool isAsc, int pageSize, int pageIndex) { return this.db.FindList(sql, param, orderField, isAsc, pageSize, pageIndex); } /// /// 获取数据列表(分页) /// /// sql语句 /// 参数 /// 分页参数 /// public Task> FindList(string sql, object param, Pagination pagination) { return this.db.FindList(sql, param, pagination); } /// /// 获取表的所有数据 /// /// 列表数据 /// public Task> FindAll() where T : class { return this.db.FindAll(); } #endregion 对象实体查询 #region 数据源查询 /// /// 查询方法,返回datatable /// /// datatable数据 /// sql语句 /// 参数 public Task FindTable(string sql, object param = null) { return this.db.FindTable(sql, param); } /// /// 分页查询方法,返回datatable /// /// sql语句 /// 参数 /// 排序字段 /// 排序类型 /// 每页数据条数 /// 页码 /// list数据,total 总共条数 public Task<(DataTable list, int total)> FindTable(string sql, object param, string orderField, bool isAsc, int pageSize, int pageIndex) { return this.db.FindTable(sql, param, orderField, isAsc, pageSize, pageIndex); } /// /// 分页查询方法,返回datatable /// /// sql语句 /// 参数 /// 分页参数 /// public Task FindTable(string sql, object param, Pagination pagination) { return this.db.FindTable(sql, param, pagination); } #endregion 数据源查询 #region 获取数据库表信息 /// /// 获取数据库表信息 /// /// 数据库表信息 public Task> GetDataBaseTable() { return this.db.GetDataBaseTable(); } /// /// 获取表的字段信息 /// /// 表的字段信息 /// 表名 public Task> GetDataBaseTableFields(string tableName) { return this.db.GetDataBaseTableFields(tableName); } /// /// 获取数据库地址信息 /// /// 数据库地址信息 public string GetDataSource() { return this.db.GetDataSource(); } /// /// 测试数据库是否能链接成功 /// /// The connection. public string TestConnection() { return this.db.TestConnection(); } /// /// 获取sql语句的字段 /// /// sql语句 /// public Task> GetSqlColName(string strSql) { return this.db.GetSqlColName(strSql); } #endregion 获取数据库表信息 } }