using Microsoft.EntityFrameworkCore.ChangeTracking; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; namespace IRaCIS.Core.Domain { /// /// 仓储接口 /// /// public interface IRepository where T : class { IQueryable GetAll(); T Add(T t); IEnumerable AddRange(IEnumerable t); void Delete(T t); bool Delete(Expression> exp); void Update(T t); Task AddOrUpdateAsync(T t); bool Update(Expression> where, Expression> entity); bool IsExist(Expression> exp); int GetCount(Expression> exp=null); T FindSingleOrDefault(Expression> exp = null); IQueryable Find(Expression> exp = null); IQueryable Find(int pageSize, int pageIndex, bool isAsc, Expression> orderByLambda, Expression> whereLambda=null); IQueryable Find(int pageSize, int pageIndex, bool isAsc, string propName, Expression> whereLambda); bool SaveChanges(); ValueTask> AddAsync(T entity); Task DeleteAsync(Expression> whereLambda); Task UpdateAsync(Expression> whereLambda, Expression> entity); Task IsExistAsync(Expression> whereLambda); Task GetFirstOrDefaultAsync(Expression> whereLambda); Task GetCountAsync(Expression> whereLambda = null); Task SaveChangesAsync(); } }