UIStandardWebApi/UIStandardWebApi.IService/IBaseService.cs
2025-04-08 13:45:22 +08:00

131 lines
3.9 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using SqlSugar;
using System.Linq.Expressions;
using UIStandardWebApi.Entity;
namespace UIStandardWebApi.IService
{
public interface IBaseService
{
#region Query
/// <summary>
/// 主键查询
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
T Find<T>(int id) where T : class;
/// <summary>
/// 主键查询-异步版本
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="id"></param>
/// <returns></returns>
Task<T> FindAsync<T>(int id) where T : class;
/// <summary>
/// 提供对单表的查询
/// </summary>
/// <returns>ISugarQueryable类型集合</returns>
[Obsolete("尽量避免使用using 带表达式目录树的 代替")]
ISugarQueryable<T> Set<T>() where T : class;
/// <summary>
/// 条件查询
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="funcWhere"></param>
/// <returns></returns>
ISugarQueryable<T> Query<T>(Expression<Func<T, bool>> funcWhere) where T : class;
/// <summary>
/// 分页查询
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="funcWhere"></param>
/// <param name="pageSize"></param>
/// <param name="pageIndex"></param>
/// <param name="funcOrderby"></param>
/// <param name="isAsc"></param>
/// <returns></returns>
PagingData<T> QueryPage<T>(Expression<Func<T, bool>> funcWhere, int pageSize, int pageIndex, Expression<Func<T, object>> funcOrderby, bool isAsc = true) where T : class;
#endregion
#region Add
/// <summary>
/// 新增数据-同步版本
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
T Insert<T>(T t) where T : class, new();
/// <summary>
/// 新增数据-异步版本
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
Task<T> InsertAsync<T>(T t) where T : class, new();
/// <summary>
/// 批量新增
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="tList"></param>
/// <returns></returns>
Task<bool> InsertList<T>(List<T> tList) where T : class, new();
#endregion
#region Update
/// <summary>
/// 更新数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
Task<bool> UpdateAsync<T>(T t) where T : class, new();
/// <summary>
/// 更新数据即时Commit
/// </summary>
/// <param name="tList"></param>
void Update<T>(List<T> tList) where T : class, new();
#endregion
#region Delete
/// <summary>
/// 根据主键删除数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="pId"></param>
/// <returns></returns>
bool Delete<T>(object pId) where T : class, new();
/// <su+mary>
/// 删除数据即时Commit
/// </summary>
/// <param name="t"></param>
void Delete<T>(T t) where T : class, new();
/// <summary>
/// 删除数据即时Commit
/// </summary>
/// <param name="tList"></param>
void Delete<T>(List<T> tList) where T : class;
#endregion
#region Other
/// <summary>
/// 执行sql 返回集合
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql"></param>
/// <returns></returns>
ISugarQueryable<T> ExcuteQuery<T>(string sql) where T : class, new();
#endregion
}
}