|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331 |
- using Learun.Util;
- 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.Repository
- {
- /// <summary>
- /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
- /// Copyright (c) 2013-2018 北京泉江科技有限公司
- /// 创建人:陈彬彬
- /// 日 期:2017.03.04
- /// 描 述:定义仓储模型中的数据标准操作接口
- /// </summary>
- public interface IRepository
- {
- #region 连接信息
- /// <summary>
- /// 获取连接上下文
- /// </summary>
- /// <returns></returns>
- DbConnection getDbConnection();
- #endregion
-
- #region 事务
- /// <summary>
- /// 开始事务
- /// </summary>
- /// <returns></returns>
- IRepository BeginTrans();
- /// <summary>
- /// 提交
- /// </summary>
- void Commit();
- /// <summary>
- /// 回滚
- /// </summary>
- void Rollback();
- #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;
-
- Task<int> InsertAsync<T>(List<T> entity) where T : class;
- /// <summary>
- /// 批量插入实体数据
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="entities">实体数据列表</param>
- /// <returns></returns>
- int Insert<T>(List<T> entity) 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>(List<T> entity) 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>(List<T> entity) where T : class;
- #endregion
-
- #region 对象实体 查询
- /// <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) 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();
-
- Task<IEnumerable<T>> FindListAsync<T>(string strSql, object dbParameter) where T : class;
-
- Task<IEnumerable<T>> FindListAsync<T>(string strSql) where T : class;
- /// <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="pagination">分页数据</param>
- /// <returns></returns>
- IEnumerable<T> FindList<T>(Pagination pagination) where T : class, new();
-
- IEnumerable<T> FindList<T>(List<T> data, Pagination pagination) where T : class, new();
- IEnumerable<T> FindList<T>(List<T> data, Expression<Func<T, bool>> condition, Pagination pagination) where T : class, new();
- /// <summary>
- /// 查询列表(分页)
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="condition">表达式</param>
- /// <param name="pagination">分页数据</param>
- /// <returns></returns>
- IEnumerable<T> FindList<T>(Expression<Func<T, bool>> condition, Pagination pagination) 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>
- /// 查询列表(分页)
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="strSql">SQL语句</param>
- /// <param name="pagination">分页数据</param>
- /// <returns></returns>
- IEnumerable<T> FindList<T>(string strSql, Pagination pagination) where T : class;
- /// <summary>
- /// 查询列表(分页)
- /// </summary>
- /// <typeparam name="T">类型</typeparam>
- /// <param name="strSql">SQL语句</param>
- /// <param name="dbParameter">参数</param>
- /// <param name="pagination">分页数据</param>
- /// <returns></returns>
- IEnumerable<T> FindList<T>(string strSql, object dbParameter, Pagination pagination) 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="pagination">分页数据</param>
- /// <returns></returns>
- DataTable FindTable(string strSql, Pagination pagination);
- /// <summary>
- /// 查询列表(分页)
- /// </summary>
- /// <param name="strSql">sql语句</param>
- /// <param name="dbParameter">参数</param>
- /// <param name="pagination">分页数据</param>
- /// <returns></returns>
- DataTable FindTable(string strSql, object dbParameter, Pagination pagination);
- /// <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
- }
- }
|