- 替换原有自定义生命周期接口为通用基础服务体系 - 将所有实体基类替换为带雪花ID的SqlSugarBaseEntity - 迁移DTO到Models项目并统一管理 - 移除冗余的Repository层实现,改用通用基础服务 - 添加Yitter.IdGenerator雪花ID生成支持 - 重构SqlSugar数据库上下文与依赖注入配置 - 新增微信用户、用户勋章、背包等实体与配套服务 - 整理分页查询与结果封装类 - 优化WebApi控制器结构
103 lines
3.4 KiB
C#
103 lines
3.4 KiB
C#
|
|
using QYZH.InteractiveMagazine.Models.Dto;
|
|
using SqlSugar;
|
|
using System.Data;
|
|
using System.Linq.Expressions;
|
|
|
|
namespace QYZH.InteractiveMagazine.Repository
|
|
{
|
|
public interface IBaseRepository<T> : ISimpleClient<T> where T : class, new()
|
|
{
|
|
#region add
|
|
int Add(T t, bool ignoreNull = true);
|
|
|
|
int Insert(List<T> t);
|
|
int Insert(T parm, Expression<Func<T, object>> iClumns = null, bool ignoreNull = true);
|
|
|
|
IInsertable<T> Insertable(T t);
|
|
|
|
IUpdateable<T> Updateable();
|
|
#endregion add
|
|
|
|
#region update
|
|
int Update(T entity, bool ignoreNullColumns = false, object data = null);
|
|
|
|
/// <summary>
|
|
/// 只更新表达式的值
|
|
/// </summary>
|
|
/// <param name="entity"></param>
|
|
/// <param name="expression"></param>
|
|
/// <returns></returns>
|
|
int Update(T entity, Expression<Func<T, object>> expression, bool ignoreAllNull = false);
|
|
|
|
int Update(T entity, Expression<Func<T, object>> expression, Expression<Func<T, bool>> where);
|
|
|
|
int Update(Expression<Func<T, T>> columns, Expression<Func<T, bool>> where);
|
|
Task<int> UpdateAsync(Expression<Func<T, T>> columns, Expression<Func<T, bool>> where);
|
|
|
|
#endregion update
|
|
|
|
/// <summary>
|
|
/// 事务 同步
|
|
/// </summary>
|
|
/// <param name="action"></param>
|
|
/// <returns></returns>
|
|
Task UseTranAsync(Func<Task> action);
|
|
|
|
/// <summary>
|
|
/// 事务 异步
|
|
/// </summary>
|
|
/// <param name="action"></param>
|
|
/// <returns></returns>
|
|
Task<bool> UseTranAsync(Func<Task<bool>> action);
|
|
|
|
#region delete
|
|
IDeleteable<T> Deleteable();
|
|
int Delete(object id, string title = "");
|
|
int DeleteTable();
|
|
bool Truncate();
|
|
|
|
#endregion delete
|
|
|
|
#region query
|
|
/// <summary>
|
|
/// 根据条件查询分页数据
|
|
/// </summary>
|
|
/// <param name="where"></param>
|
|
/// <param name="parm"></param>
|
|
/// <returns></returns>
|
|
PageListModel<T> GetPages(Expression<Func<T, bool>> where, PageQueryModel parm);
|
|
|
|
PageListModel<T> GetPages(Expression<Func<T, bool>> where, PageQueryModel parm, Expression<Func<T, object>> order, OrderByType orderEnum = OrderByType.Asc);
|
|
PageListModel<T> GetPages(Expression<Func<T, bool>> where, PageQueryModel parm, Expression<Func<T, object>> order, string orderByType);
|
|
|
|
bool Any(Expression<Func<T, bool>> expression);
|
|
|
|
ISugarQueryable<T> Queryable();
|
|
List<T> GetAll(bool useCache = false, int cacheSecond = 3600);
|
|
|
|
List<T> SqlQueryToList(string sql, object obj = null);
|
|
|
|
/// <summary>
|
|
/// 根据主值查询单条数据
|
|
/// </summary>
|
|
/// <param name="pkValue">主键值</param>
|
|
/// <returns>泛型实体</returns>
|
|
R GetById<R>(object pkValue) where R : class;
|
|
|
|
Task<R> GetByExpression<R>(Expression<Func<T, bool>> expression) where R : class;
|
|
|
|
Task<List<T2>> GetListByExpression<T2>(Expression<Func<T, bool>> expression) where T2 : class;
|
|
|
|
#endregion query
|
|
|
|
#region Procedure
|
|
|
|
DataTable UseStoredProcedureToDataTable(string procedureName, List<SugarParameter> parameters);
|
|
|
|
(DataTable, List<SugarParameter>) UseStoredProcedureToTuple(string procedureName, List<SugarParameter> parameters);
|
|
|
|
#endregion Procedure
|
|
}
|
|
}
|