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.05 /// 描 述:数据库接口类 /// public interface IDataBase { #region 事务 /// /// 开启事务 /// /// IDataBase BeginTrans(); /// /// 提交 /// /// void Commit(); /// /// 回滚 /// void Rollback(); /// /// 关闭 /// void Close(); #endregion 事务 #region 执行sql语句 /// /// 执行sql语句(带参数) /// /// sql语句 /// 参数 /// Task ExecuteSql(string strSql, object param = null); #endregion 执行sql语句 #region 执行存储过程 /// /// 执行存储过程 /// /// 存储过程名称 /// 参数 /// Task ExecuteProc(string procName, object param = null); /// /// 执行存储过程(查询实体数据) /// /// 存储过程名称 /// 参数 /// Task ExecuteProc(string procName, object param = null) where T : class; /// /// 执行存储过程(查询实体数据) /// /// /// 存储过程名称. /// 参数 Task QueryFirstProc(string procName, object param = null); /// /// 执行存储过程(获取列表数据) /// /// 存储过程名称 /// 参数 /// Task> QueryProc(string procName, object param = null) where T : class; /// /// 执行存储过程(获取列表数据) /// /// 存储过程名称 /// 参数 /// Task> QueryProc(string procName, object param = null); #endregion 执行存储过程 #region 对像实体 新增/修改/删除 /// /// 插入实体数据 /// /// 类型 /// 实体数据 /// Task Insert(T entity) where T : class; /// /// 更新实体数据 /// /// /// 实体数据 /// 是否只更新有值的字段 /// 类型 Task Update(T entity, bool isOnlyHasValue = false) where T : class; /// /// 删除实体数据 /// /// /// 实体数据 /// 类型 Task Delete(T entity) where T : class; /// /// 删除数据根据给定的字段值 /// /// /// 参数 /// 类型 Task DeleteAny(object param) where T : class; #endregion 对像实体 新增/修改/删除 #region 对象实体查询 /// /// 获取单个实体数据 /// /// 单个实体数据 /// 主键 /// Task FindEntityByKey(object keyValue) where T : class; /// /// 获取单个实体数据 /// /// 单个实体数据 /// sql语句 /// 参数 /// Task FindEntity(string sql, object param = null) where T : class; /// /// 获取单个实体数据 /// /// 单个实体数据 /// 参数 /// Task FindEntity(object param = null) where T : class; /// /// 获取单个实体数据 /// /// 单个实体数据 /// sql语句. /// 参数. Task FindEntity(string sql, object param = null); /// /// 获取数据列表 /// /// 列表数据 /// sql语句. /// 参数. /// 类型. Task> FindList(string sql, object param = null) where T : class; /// /// 获取数据列表 /// /// 列表数据 /// 参数. /// 类型. Task> FindList(object param) where T : class; /// /// 获取数据列表 /// /// 列表数据 /// sql语句. /// 参数. Task> FindList(string sql, object param = null); /// /// 获取数据列表(分页) /// /// 列表数据 /// sql语句 /// 参数 /// 排序字段 /// 排序类型 /// 每页数据条数 /// 页码 /// Task<(IEnumerable list, int total)> FindList(string sql, object param, string orderField, bool isAsc, int pageSize, int pageIndex) where T : class; /// /// 获取数据列表(分页) /// /// /// sql语句 /// 参数 /// 分页参数 /// Task> FindList(string sql, object param, Pagination pagination) where T : class; /// /// 获取数据列表(分页) /// /// 列表数据 /// sql语句 /// 参数 /// 排序字段 /// 排序类型 /// 每页数据条数 /// 页码 Task<(IEnumerable list, int total)> FindList(string sql, object param, string orderField, bool isAsc, int pageSize, int pageIndex); /// /// 获取数据列表(分页) /// /// sql语句 /// 参数 /// 分页参数 /// Task> FindList(string sql, object param, Pagination pagination); /// /// 获取表的所有数据 /// /// 列表数据 /// Task> FindAll() where T : class; #endregion 对象实体查询 #region 数据源查询 /// /// 查询方法,返回datatable /// /// datatable数据 /// sql语句 /// 参数 Task FindTable(string sql, object param = null); /// /// 分页查询方法,返回datatable /// /// sql语句 /// 参数 /// 排序字段 /// 排序类型 /// 每页数据条数 /// 页码 /// list数据,total 总共条数 Task<(DataTable list, int total)> FindTable(string sql, object param, string orderField, bool isAsc, int pageSize, int pageIndex); /// /// 分页查询方法,返回datatable /// /// sql语句 /// 参数 /// 分页参数 /// Task FindTable(string sql, object param, Pagination pagination); #endregion 数据源查询 #region 获取数据库表信息 /// /// 获取数据库表信息 /// /// 数据库表信息 Task> GetDataBaseTable(); /// /// 获取表的字段信息 /// /// 表的字段信息 /// 表名 Task> GetDataBaseTableFields(string tableName); /// /// 获取数据库地址信息 /// /// 数据库地址信息 string GetDataSource(); /// /// 测试数据库是否能链接成功 /// /// The connection. string TestConnection(); /// /// 获取sql语句的字段 /// /// sql语句 /// Task> GetSqlColName(string strSql); #endregion 获取数据库表信息 } }