|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358 |
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Data.Common;
- using System.Linq;
- using System.Linq.Expressions;
- using System.Threading.Tasks;
-
- namespace Learun.DataBase
- {
- /// <summary>
- /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
- /// Copyright (c) 2013-2018 北京泉江科技有限公司
- /// 创建人:陈彬彬
- /// 日 期:2017.03.04
- /// 描 述:数据库方法操作接口
- /// </summary>
- public interface IDatabase
- {
- /// <summary>
- /// 获取连接上下文
- /// </summary>
- /// <returns></returns>
- DbConnection getDbConnection();
-
- #region 事务
- /// <summary>
- /// 开启事务
- /// </summary>
- /// <returns></returns>
- IDatabase BeginTrans();
- /// <summary>
- /// 提交
- /// </summary>
- /// <returns></returns>
- int Commit();
- /// <summary>
- /// 回滚
- /// </summary>
- void Rollback();
- /// <summary>
- /// 关闭
- /// </summary>
- void Close();
- #endregion
-
- #region 执行 SQL 语句
-
- Task<int> ExecuteAsyncBySql(string strSql);
- /// <summary>
- /// 执行sql语句
- /// </summary>
- /// <param name="strSql">sql语句</param>
- /// <returns></returns>
- int ExecuteBySql(string strSql);
- /// <summary>
- /// 执行sql语句(带参数)
- /// </summary>
- /// <param name="strSql">sql语句</param>
- /// <param name="dbParameter">参数</param>
- /// <returns></returns>
- int ExecuteBySql(string strSql, object dbParameter);
- /// <summary>
- /// 执行存储过程
- /// </summary>
- /// <param name="procName">存储过程名称</param>
- /// <returns></returns>
- int ExecuteByProc(string procName);
- /// <summary>
- /// 执行存储过程
- /// </summary>
- /// <param name="procName">存储过程名称</param>
- /// <param name="dbParameter">参数</param>
- /// <returns></returns>
- int ExecuteByProc(string procName, object dbParameter);
- /// <summary>
- /// 执行存储过程
- /// </summary>
- /// <param name="procName">存储过程名称</param>
- /// <returns></returns>
- T ExecuteByProc<T>(string procName) where T : class;
- /// <summary>
- /// 执行存储过程
- /// </summary>
- /// <param name="procName">存储过程名称</param>
- /// <param name="dbParameter">参数</param>
- /// <returns></returns>
- T ExecuteByProc<T>(string procName, object dbParameter) where T : class;
- /// <summary>
- /// 执行存储过程
- /// </summary>
- /// <param name="procName">存储过程名称</param>
- /// <returns></returns>
- IEnumerable<T> QueryByProc<T>(string procName) where T : class;
- /// <summary>
- /// 执行存储过程
- /// </summary>
- /// <param name="procName">存储过程名称</param>
- /// <param name="dbParameter">参数</param>
- /// <returns></returns>
- IEnumerable<T> QueryByProc<T>(string procName, object dbParameter) where T : class;
- #endregion
-
- #region 对象实体 添加、修改、删除
- /// <summary>
- /// 插入实体数据
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="entity">实体数据</param>
- /// <returns></returns>
- int Insert<T>(T entity) where T : class;
- /// <summary>
- /// 批量插入实体数据
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="entities">实体数据列表</param>
- /// <returns></returns>
- int Insert<T>(IEnumerable<T> entities) where T : class;
-
- Task<int> InsertAsync<T>(IEnumerable<T> entities) where T : class;
- /// <summary>
- /// 删除实体数据
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="entity">实体数据(需要主键赋值)</param>
- /// <returns></returns>
- int Delete<T>(T entity) where T : class;
- /// <summary>
- /// 批量删除实体数据
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="entities">实体数据列表</param>
- /// <returns></returns>
- int Delete<T>(IEnumerable<T> entities) where T : class;
- /// <summary>
- /// 删除表数据(根据Lambda表达式)
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="condition"></param>
- /// <returns></returns>
- int Delete<T>(Expression<Func<T, bool>> condition) where T : class,new();
- /// <summary>
- /// 更新实体数据
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="entity">实体数据</param>
- /// <returns></returns>
- int Update<T>(T entity) where T : class;
- /// <summary>
- /// 更新实体数据
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="entity">实体数据</param>
- /// <returns></returns>
- int UpdateEx<T>(T entity) where T : class;
- /// <summary>
- /// 批量更新实体数据
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="entities">实体数据列表</param>
- /// <returns></returns>
- int Update<T>(IEnumerable<T> entities) where T : class;
- #endregion
-
- #region 对象实体 查询
- Task<IEnumerable<T>> FindListAsync<T>(string strSql) where T : class;
- Task<IEnumerable<T>> FindListAsync<T>(string strSql, object dbParameter) where T : class;
- /// <summary>
- /// 查找一个实体根据主键
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="KeyValue">主键</param>
- /// <returns></returns>
- T FindEntity<T>(object KeyValue) where T : class;
- /// <summary>
- /// 查找一个实体(根据表达式)
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="condition">表达式</param>
- /// <returns></returns>
- T FindEntity<T>(Expression<Func<T, bool>> condition) where T : class,new();
- /// <summary>
- /// 查找一个实体(根据sql)
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="strSql">sql语句</param>
- /// <param name="dbParameter">参数</param>
- /// <returns></returns>
- T FindEntity<T>(string strSql, object dbParameter = null) where T : class,new();
- /// <summary>
- /// 获取IQueryable表达式
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <returns></returns>
- IQueryable<T> IQueryable<T>() where T : class,new();
- /// <summary>
- /// 获取IQueryable表达式(根据表达式)
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="condition">表达式</param>
- /// <returns></returns>
- IQueryable<T> IQueryable<T>(Expression<Func<T, bool>> condition) where T : class,new();
- /// <summary>
- /// 查询列表(获取表所有数据)
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <returns></returns>
- IEnumerable<T> FindList<T>() where T : class,new();
-
- Task<IEnumerable<T>> FindListAsync<T>() where T : class, new();
- /// <summary>
- /// 查询列表(获取表所有数据)
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="orderby">排序</param>
- /// <returns></returns>
- IEnumerable<T> FindList<T>(Func<T, object> orderby) where T : class,new();
- /// <summary>
- /// 查询列表根据表达式
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="condition">表达式</param>
- /// <returns></returns>
- IEnumerable<T> FindList<T>(Expression<Func<T, bool>> condition) where T : class,new();
- /// <summary>
- /// 查询列表根据sql语句
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="strSql">sql语句</param>
- /// <returns></returns>
- IEnumerable<T> FindList<T>(string strSql) where T : class;
- /// <summary>
- /// 查询列表根据sql语句(带参数)
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="strSql">sql语句</param>
- /// <param name="dbParameter">参数</param>
- /// <returns></returns>
- IEnumerable<T> FindList<T>(string strSql, object dbParameter) where T : class;
- /// <summary>
- /// 查询列表(分页)
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="orderField">排序字段</param>
- /// <param name="isAsc">排序类型</param>
- /// <param name="pageSize">每页数据条数</param>
- /// <param name="pageIndex">页码</param>
- /// <param name="total">总共数据条数</param>
- /// <returns></returns>
- IEnumerable<T> FindList<T>(string orderField, bool isAsc, int pageSize, int pageIndex, out int total) where T : class,new();
- /// <summary>
- /// 查询列表(分页)带表达式条件
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="condition">表达式</param>
- /// <param name="orderField">排序字段</param>
- /// <param name="isAsc">排序类型</param>
- /// <param name="pageSize">每页数据条数</param>
- /// <param name="pageIndex">页码</param>
- /// <param name="total">总共数据条数</param>
- /// <returns></returns>
- IEnumerable<T> FindList<T>(Expression<Func<T, bool>> condition, string orderField, bool isAsc, int pageSize, int pageIndex, out int total) where T : class,new();
- /// <summary>
- /// 查询列表(分页)根据sql语句
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="strSql">sql语句</param>
- /// <param name="orderField">排序字段</param>
- /// <param name="isAsc">排序类型</param>
- /// <param name="pageSize">每页数据条数</param>
- /// <param name="pageIndex">页码</param>
- /// <param name="total">总共数据条数</param>
- /// <returns></returns>
- IEnumerable<T> FindList<T>(string strSql, string orderField, bool isAsc, int pageSize, int pageIndex, out int total) where T : class;
- /// <summary>
- /// 查询列表(分页)根据sql语句
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="strSql">sql语句</param>
- /// <param name="dbParameter">参数</param>
- /// <param name="orderField">排序字段</param>
- /// <param name="isAsc">排序类型</param>
- /// <param name="pageSize">每页数据条数</param>
- /// <param name="pageIndex">页码</param>
- /// <param name="total">总共数据条数</param>
- /// <returns></returns>
- IEnumerable<T> FindList<T>(string strSql, object dbParameter, string orderField, bool isAsc, int pageSize, int pageIndex, out int total) where T : class;
- #endregion
-
- #region 数据源查询
- /// <summary>
- /// 查询数据
- /// </summary>
- /// <param name="strSql">sql语句</param>
- /// <returns></returns>
- DataTable FindTable(string strSql);
- /// <summary>
- /// 查询数据
- /// </summary>
- /// <param name="strSql">sql语句</param>
- /// <param name="dbParameter">参数</param>
- /// <returns></returns>
- DataTable FindTable(string strSql, object dbParameter);
- /// <summary>
- /// 查询数据
- /// </summary>
- /// <param name="strSql">sql语句</param>
- /// <param name="orderField">排序字段</param>
- /// <param name="isAsc">排序类型</param>
- /// <param name="pageSize">每页数据条数</param>
- /// <param name="pageIndex">页码</param>
- /// <param name="total">总共数据条数</param>
- /// <returns></returns>
- DataTable FindTable(string strSql, string orderField, bool isAsc, int pageSize, int pageIndex, out int total);
- /// <summary>
- /// 查询数据
- /// </summary>
- /// <param name="strSql">sql语句</param>
- /// <param name="dbParameter">参数</param>
- /// <param name="orderField">排序字段</param>
- /// <param name="isAsc">排序类型</param>
- /// <param name="pageSize">每页数据条数</param>
- /// <param name="pageIndex">页码</param>
- /// <param name="total">总共数据条数</param>
- /// <returns></returns>
- DataTable FindTable(string strSql, object dbParameter, string orderField, bool isAsc, int pageSize, int pageIndex, out int total);
- /// <summary>
- /// 获取查询对象
- /// </summary>
- /// <param name="strSql">sql语句</param>
- /// <returns></returns>
- object FindObject(string strSql);
- /// <summary>
- /// 获取查询对象
- /// </summary>
- /// <param name="strSql">sql语句</param>
- /// <param name="dbParameter">参数</param>
- /// <returns></returns>
- object FindObject(string strSql, object dbParameter);
- #endregion
-
- #region 扩展方法
- /// <summary>
- /// 获取数据库表数据
- /// </summary>
- /// <typeparam name="T">反序列化类型</typeparam>
- /// <returns></returns>
- IEnumerable<T> GetDBTable<T>() where T : class,new();
- /// <summary>
- /// 获取数据库表字段数据
- /// </summary>
- /// <typeparam name="T">反序列化类型</typeparam>
- /// <param name="tableName">表名</param>
- /// <returns></returns>
- IEnumerable<T> GetDBTableFields<T>(string tableName) where T : class,new();
- #endregion
- }
- }
|