| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- using System;
- using System.Linq;
- using System.Linq.Expressions;
- using YZXYH.Repository.Models;
- namespace YZXYH.Repository.Interface
- {
- public interface IBaseRepository<T>
- {
- /// <summary>
- /// 是否存在
- /// </summary>
- /// <param name="exp">过滤条件</param>
- /// <returns></returns>
- bool IsExist(Expression<Func<T, bool>> exp);
-
- /// <summary>
- /// 过滤排序查询
- /// </summary>
- /// <param name="exp">过滤条件(eg: u=>u.Id="1")</param>
- /// <param name="orderBy">排序(eg: q=>q.OrderByDescending(u=>u.Name))</param>
- /// <param name="includeProperties">外键</param>
- /// <returns> 对象集合</returns>
- IQueryable<T> Get(Expression<Func<T, bool>> exp = null,
- Func<IQueryable<T>, IOrderedQueryable<T>> orderBy = null, string includeProperties = "");
-
- /// <summary>
- /// 分页排序记录
- /// </summary>
- /// <param name="pageindex">The pageindex.</param>
- /// <param name="pagesize">The pagesize.</param>
- /// <param name="orderBy">排序(eg: q=>q.OrderByDescending(u=>u.Name))</param>
- /// <param name="exp">过滤条件(eg: u=>u.Id="1")</param>
- /// <param name="includeProperties">外键</param>
- IQueryable<T> Get(int pageindex, int pagesize, Func<IQueryable<T>, IOrderedQueryable<T>> orderBy = null,
- Expression<Func<T, bool>> exp = null, string includeProperties = "");
-
- /// <summary>
- /// 查找单个
- /// </summary>
- T GetSingle(Expression<Func<T, bool>> exp);
-
- /// <summary>
- /// 根据Id获取数据
- /// </summary>
- /// <param name="id"></param>
- /// <returns></returns>
- T GetById(string id);
-
- /// <summary>
- /// 根据过滤条件获取记录数
- /// </summary>
- int GetCount(Expression<Func<T, bool>> exp = null);
-
- /// <summary>
- /// 普通插入
- /// </summary>
- /// <param name="t"></param>
- void Insert(T t);
-
- /// <summary>
- /// 没有主键Id的插入
- /// </summary>
- /// <param name="t"></param>
- void InsertNoId(T t);
- /// <summary>
- /// 批量插入
- /// </summary>
- /// <param name="ts">The entities.</param>
- void BatchInsert(T[] ts);
-
- /// <summary>
- /// 删除记录
- /// </summary>
- /// <param name="t"></param>
- void Delete(T t);
-
- /// <summary>
- /// 删除记录
- /// </summary>
- /// <param name="exp">过滤条件</param>
- void Delete(Expression<Func<T, bool>> exp);
-
- /// <summary>
- ///根据Id删除
- /// </summary>
- /// <param name="id"></param>
- void DeleteById(string id);
-
- /// <summary>
- /// 更新
- /// </summary>
- /// <param name="t"></param>
- void Update(T t);
-
- /// <summary>
- /// 实现按需要只更新部分更新
- /// <para>如:Update(u =>u.Id==1,u =>new User{Name="ok"});</para>
- /// </summary>
- /// <param name="where">The where.</param>
- /// <param name="t">The entity.</param>
- void Update(Expression<Func<T, bool>> where, Expression<Func<T, T>> t);
-
- /// <summary>
- /// 按指定id更新实体,会更新整个实体
- /// </summary>
- /// <param name="identityExp">The identity exp.</param>
- /// <param name="t">The entity.</param>
- void Update(Expression<Func<T, object>> identityExp, T t);
- /// <summary>
- /// 查询记录条数(Chat.js)
- /// </summary>
- /// <param name="queryStrs">参数 “表名 | 条件语句 , 表名 | 条件语句”</param>
- /// (多个查询以 , 分隔,表名与条件语句以 | 分隔)
- /// <returns></returns>
- string[] GetCounts(string[] queryStrs);
- bool Save();
- }
- }
|