using SqlSugar; using System; using System.Collections.Generic; using System.Linq.Expressions; namespace JY.DAL.Repository { public class Repository : IRepository where T : class, new() { public ISqlSugarClient Db => DataContext.Instance; public T GetById(object id) { return Db.Queryable().InSingle(id); } public T GetSingle(Expression> predicate) { return Db.Queryable().Where(predicate).Single(); } public List GetList() { return Db.Queryable().ToList(); } public List GetList(Expression> predicate) { return Db.Queryable().Where(predicate).ToList(); } public List GetListPaged(int pageIndex, int pageSize, out int totalCount, Expression> predicate = null, string orderBy = null) { totalCount = 0; var query = Db.Queryable(); if (predicate != null) { query = query.Where(predicate); } if (!string.IsNullOrEmpty(orderBy)) { query = query.OrderBy(orderBy); } return query.ToPageList(pageIndex, pageSize, ref totalCount); } public int Insert(T entity) { return Db.Insertable(entity).ExecuteReturnIdentity(); } public int Insert(List entities) { return Db.Insertable(entities).ExecuteCommand(); } public int Update(T entity) { return Db.Updateable(entity).ExecuteCommand(); } public int Update(T entity, Expression> whereExpression) { return Db.Updateable(entity).Where(whereExpression).ExecuteCommand(); } public int Update(Expression> columns, Expression> whereExpression) { return Db.Updateable().SetColumns(columns).Where(whereExpression).ExecuteCommand(); } public int Delete(object id) { return Db.Deleteable().In(id).ExecuteCommand(); } public int Delete(Expression> predicate) { return Db.Deleteable().Where(predicate).ExecuteCommand(); } public int Delete(List entities) { return Db.Deleteable(entities).ExecuteCommand(); } public bool Any(Expression> predicate) { return Db.Queryable().Where(predicate).Any(); } public int Count(Expression> predicate = null) { var query = Db.Queryable(); if (predicate != null) { query = query.Where(predicate); } return query.Count(); } } }