using QYZH.InteractiveMagazine.Models.Dto; using SqlSugar; using System.Data; using System.Linq.Expressions; namespace QYZH.InteractiveMagazine.Repository { public interface IBaseRepository : ISimpleClient where T : class, new() { #region add int Add(T t, bool ignoreNull = true); int Insert(List t); int Insert(T parm, Expression> iClumns = null, bool ignoreNull = true); IInsertable Insertable(T t); IUpdateable Updateable(); #endregion add #region update int Update(T entity, bool ignoreNullColumns = false, object data = null); /// /// 只更新表达式的值 /// /// /// /// int Update(T entity, Expression> expression, bool ignoreAllNull = false); int Update(T entity, Expression> expression, Expression> where); int Update(Expression> columns, Expression> where); Task UpdateAsync(Expression> columns, Expression> where); #endregion update /// /// 事务 同步 /// /// /// Task UseTranAsync(Func action); /// /// 事务 异步 /// /// /// Task UseTranAsync(Func> action); #region delete IDeleteable Deleteable(); int Delete(object id, string title = ""); int DeleteTable(); bool Truncate(); #endregion delete #region query /// /// 根据条件查询分页数据 /// /// /// /// PageListModel GetPages(Expression> where, PageQueryModel parm); PageListModel GetPages(Expression> where, PageQueryModel parm, Expression> order, OrderByType orderEnum = OrderByType.Asc); PageListModel GetPages(Expression> where, PageQueryModel parm, Expression> order, string orderByType); bool Any(Expression> expression); ISugarQueryable Queryable(); List GetAll(bool useCache = false, int cacheSecond = 3600); List SqlQueryToList(string sql, object obj = null); /// /// 根据主值查询单条数据 /// /// 主键值 /// 泛型实体 R GetById(object pkValue) where R : class; Task GetByExpression(Expression> expression) where R : class; Task> GetListByExpression(Expression> expression) where T2 : class; #endregion query #region Procedure DataTable UseStoredProcedureToDataTable(string procedureName, List parameters); (DataTable, List) UseStoredProcedureToTuple(string procedureName, List parameters); #endregion Procedure } }