仓储层接口IBaseRepository解析
//代码调用由业务层调用,调用方式详见源代码的业务层,升级直接替换TT模板即可,无需覆盖系统
using System; using System.Collections.Generic; using System.Data.Entity.Infrastructure; using System.Data.SqlClient; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; namespace Apps.IDAL { public interface IBaseRepository<T> : IDisposable { #region 创建记录(异步与同步方法) bool Create(T model, bool isCommit = true); Task<bool> CreateAsync(T model, bool isCommit = true); bool CreateList<T1>(List<T1> T, bool IsCommit = true) where T1 : class; Task<bool> CreateListAsync<T1>(List<T1> T, bool IsCommit = true) where T1 : class; #endregion #region 修改记录 (异步和同步方法) bool Edit(T model, bool isCommit = true); Task<bool> EditAsync(T model, bool isCommit = true); /// <summary> /// 批量 /// </summary> /// <param name="whereLambda">表达式</param> /// <param name="updateLambda">m_Rep.BatchUpdate(a=>a.Age==36,a=>new SysSample() { Age = 37});</param> /// <returns></returns> int BatchUpdate(Expression<Func<T, bool>> whereLambda, Expression<Func<T, T>> updateLambda); Task<int> BatchUpdateAsync(Expression<Func<T, bool>> whereLambda, Expression<Func<T, T>> updateLambda); #endregion #region 删除记录 (异步和同步方法) bool Delete(T model, bool isCommit = true); Task<bool> DeleteAsync(T model, bool isCommit = true); /// <summary> /// 按主键删除 /// </summary> /// <param name="keyValues"></param> int Delete(params object[] keyValues); Task<int> DeleteAsync(params object[] keyValues); /// <summary> /// 批量删除 /// </summary> /// <param name="whereLambda">删除条件</param> /// <returns></returns> int BatchDelete(Expression<Func<T, bool>> whereLambda); Task<int> BatchDeleteAsync(Expression<Func<T, bool>> whereLambda); #endregion #region 查询记录(异步和同步方法) T GetById(params object[] keyValues); Task<T> GetByIdAsync(params object[] keyValues); T GetSingleWhere(Expression<Func<T, bool>> whereLambda); /// <summary> /// 获得所有数据 /// </summary> /// <returns></returns> IQueryable<T> GetList(); /// <summary> /// 根据表达式获取数据 /// </summary> /// <param name="whereLambda"></param> /// <returns></returns> IQueryable<T> GetList(Expression<Func<T, bool>> whereLambda); IQueryable<T> GetList<S>(int pageSize, int pageIndex, out int total , Expression<Func<T, bool>> whereLambda, bool isAsc, Expression<Func<T, bool>> orderByLambda); #endregion #region 执行数据库语句 (同步和异步方法) /// <summary> /// 执行一条SQL语句 /// </summary> /// <param name="sql"></param> /// <returns></returns> int ExecuteSqlCommand(string sql); int ExecuteSqlCommand(string sql, params SqlParameter[] sp); Task<int> ExecuteSqlCommandAsync(string sql); IQueryable<T> SqlQuery(string sql); IQueryable<T> SqlQuery(string sql, params object[] paras); #endregion bool IsExist(object id); int SaveChanges(); } }
作者:YmNets
出处:http://ymnets.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://ymnets.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?