IBaseRepository.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. using System;
  2. using System.Linq;
  3. using System.Linq.Expressions;
  4. using YZXYH.Repository.Models;
  5. namespace YZXYH.Repository.Interface
  6. {
  7. public interface IBaseRepository<T>
  8. {
  9. /// <summary>
  10. /// 是否存在
  11. /// </summary>
  12. /// <param name="exp">过滤条件</param>
  13. /// <returns></returns>
  14. bool IsExist(Expression<Func<T, bool>> exp);
  15. /// <summary>
  16. /// 过滤排序查询
  17. /// </summary>
  18. /// <param name="exp">过滤条件(eg: u=>u.Id="1")</param>
  19. /// <param name="orderBy">排序(eg: q=>q.OrderByDescending(u=>u.Name))</param>
  20. /// <param name="includeProperties">外键</param>
  21. /// <returns> 对象集合</returns>
  22. IQueryable<T> Get(Expression<Func<T, bool>> exp = null,
  23. Func<IQueryable<T>, IOrderedQueryable<T>> orderBy = null, string includeProperties = "");
  24. /// <summary>
  25. /// 分页排序记录
  26. /// </summary>
  27. /// <param name="pageindex">The pageindex.</param>
  28. /// <param name="pagesize">The pagesize.</param>
  29. /// <param name="orderBy">排序(eg: q=>q.OrderByDescending(u=>u.Name))</param>
  30. /// <param name="exp">过滤条件(eg: u=>u.Id="1")</param>
  31. /// <param name="includeProperties">外键</param>
  32. IQueryable<T> Get(int pageindex, int pagesize, Func<IQueryable<T>, IOrderedQueryable<T>> orderBy = null,
  33. Expression<Func<T, bool>> exp = null, string includeProperties = "");
  34. /// <summary>
  35. /// 查找单个
  36. /// </summary>
  37. T GetSingle(Expression<Func<T, bool>> exp);
  38. /// <summary>
  39. /// 根据Id获取数据
  40. /// </summary>
  41. /// <param name="id"></param>
  42. /// <returns></returns>
  43. T GetById(string id);
  44. /// <summary>
  45. /// 根据过滤条件获取记录数
  46. /// </summary>
  47. int GetCount(Expression<Func<T, bool>> exp = null);
  48. /// <summary>
  49. /// 普通插入
  50. /// </summary>
  51. /// <param name="t"></param>
  52. void Insert(T t);
  53. /// <summary>
  54. /// 没有主键Id的插入
  55. /// </summary>
  56. /// <param name="t"></param>
  57. void InsertNoId(T t);
  58. /// <summary>
  59. /// 批量插入
  60. /// </summary>
  61. /// <param name="ts">The entities.</param>
  62. void BatchInsert(T[] ts);
  63. /// <summary>
  64. /// 删除记录
  65. /// </summary>
  66. /// <param name="t"></param>
  67. void Delete(T t);
  68. /// <summary>
  69. /// 删除记录
  70. /// </summary>
  71. /// <param name="exp">过滤条件</param>
  72. void Delete(Expression<Func<T, bool>> exp);
  73. /// <summary>
  74. ///根据Id删除
  75. /// </summary>
  76. /// <param name="id"></param>
  77. void DeleteById(string id);
  78. /// <summary>
  79. /// 更新
  80. /// </summary>
  81. /// <param name="t"></param>
  82. void Update(T t);
  83. /// <summary>
  84. /// 实现按需要只更新部分更新
  85. /// <para>如:Update(u =>u.Id==1,u =>new User{Name="ok"});</para>
  86. /// </summary>
  87. /// <param name="where">The where.</param>
  88. /// <param name="t">The entity.</param>
  89. void Update(Expression<Func<T, bool>> where, Expression<Func<T, T>> t);
  90. /// <summary>
  91. /// 按指定id更新实体,会更新整个实体
  92. /// </summary>
  93. /// <param name="identityExp">The identity exp.</param>
  94. /// <param name="t">The entity.</param>
  95. void Update(Expression<Func<T, object>> identityExp, T t);
  96. /// <summary>
  97. /// 查询记录条数(Chat.js)
  98. /// </summary>
  99. /// <param name="queryStrs">参数 “表名 | 条件语句 , 表名 | 条件语句”</param>
  100. /// (多个查询以 , 分隔,表名与条件语句以 | 分隔)
  101. /// <returns></returns>
  102. string[] GetCounts(string[] queryStrs);
  103. bool Save();
  104. }
  105. }