LFlow/LFlow.Base/Interfaces/IRepo.cs

50 lines
1.3 KiB
C#

namespace LFlow.Base.Interfaces;
/// <summary>
/// 通用的仓库对象接口
/// </summary>
/// <typeparam name="T">数据模型</typeparam>
/// <typeparam name="K">主键</typeparam>
public interface IRepo<T, K> where T : IDataModel
{
/// <summary>
/// 获取单个对象
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
T Get(K id);
/// <summary>
/// 删除单个对象
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
int DeleteById(K id);
/// <summary>
/// 保存与更新
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
T SaveOrUpdate(T entity, bool isUpdate);
/// <summary>
/// 获取所有对象列表(默认分页)
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
List<T> GetAll(int pageIndex, int pageSize, ref int pageTotal);
/// <summary>
/// 根据条件搜索对象列表
/// </summary>
/// <param name="whereObj"></param>
/// <returns></returns>
List<T> Search(T whereObj);
/// <summary>
/// 根据条件搜索主键列表
/// </summary>
/// <param name="whereObj"></param>
/// <returns></returns>
List<K> WhereSearchId(T whereObj);
}