using Admin.Core.IRepository; using Admin.Core.IService; using Admin.Core.Model; using SqlSugar; using System; using System.Collections.Generic; using System.Data; using System.Linq.Expressions; using System.Threading.Tasks; namespace Admin.Core.Service { public class BaseServices : IBaseServices where TEntity : class, new() { //public IBaseRepository baseDal = new BaseRepository(); public IBaseRepository BaseDal { get; set; }//通过在子类的构造函数中注入,这里是基类,不用构造函数 /// /// 正序查询第一条数据 /// /// public async Task FirstAsync() { return await BaseDal.FirstAsync(); } /// /// 根据条件查询查询第一条数据 /// /// /// public async Task FirstAsync(Expression> whereExpression) { return await BaseDal.FirstAsync(whereExpression); } public async Task QueryByIdAsync(object objId) { return await BaseDal.QueryByIdAsync(objId); } /// /// 功能描述:根据ID查询一条数据 /// 作  者:Admin.Core /// /// id(必须指定主键特性 [SugarColumn(IsPrimaryKey=true)]),如果是联合主键,请使用Where条件 /// 是否使用缓存 /// 数据实体 public async Task QueryByIdAsync(object objId, bool blnUseCache = false) { return await BaseDal.QueryByIdAsync(objId, blnUseCache); } /// /// 功能描述:根据ID查询数据 /// 作  者:Admin.Core /// /// id列表(必须指定主键特性 [SugarColumn(IsPrimaryKey=true)]),如果是联合主键,请使用Where条件 /// 数据实体列表 public async Task> QueryByIDsAsync(object[] lstIds) { return await BaseDal.QueryByIDsAsync(lstIds); } /// /// 写入实体数据 /// /// 实体类 /// public async Task AddAsync(TEntity entity) { return await BaseDal.AddAsync(entity); } /// /// 批量插入实体(速度快) /// /// 实体集合 /// 影响行数 public async Task AddAsync(List listEntity) { return await BaseDal.AddAsync(listEntity); } /// /// 更新实体数据 /// /// 实体类 /// public async Task UpdateAsync(TEntity entity) { return await BaseDal.UpdateAsync(entity); } public async Task UpdateAsync(TEntity entity, string strWhere) { return await BaseDal.UpdateAsync(entity, strWhere); } public async Task UpdateAsync(object operateAnonymousObjects) { return await BaseDal.UpdateAsync(operateAnonymousObjects); } public async Task UpdateAsync( TEntity entity, List lstColumns = null, List lstIgnoreColumns = null, string strWhere = "" ) { return await BaseDal.UpdateAsync(entity, lstColumns, lstIgnoreColumns, strWhere); } /// /// 根据实体删除一条数据 /// /// 实体类 /// public async Task DeleteAsync(TEntity entity) { return await BaseDal.DeleteAsync(entity); } /// /// 删除指定ID的数据 /// /// 主键ID /// public async Task DeleteByIdAsync(object id) { return await BaseDal.DeleteByIdAsync(id); } /// /// 删除指定ID集合的数据(批量删除) /// /// 主键ID集合 /// public async Task DeletesAsync(List entitys) { return await BaseDal.DeletesAsync(entitys); } /// /// 功能描述:查询所有数据 /// 作  者:Admin.Core /// /// 数据列表 public async Task> QueryAsync() { return await BaseDal.QueryAsync(); } /// /// 功能描述:查询数据列表 /// 作  者:Admin.Core /// /// 条件 /// 数据列表 public async Task> QueryAsync(string strWhere) { return await BaseDal.QueryAsync(strWhere); } /// /// 功能描述:查询数据列表 /// 作  者:Admin.Core /// /// whereExpression /// 数据列表 public async Task> QueryAsync(Expression> whereExpression) { return await BaseDal.QueryAsync(whereExpression); } /// /// 功能描述:按照特定列查询数据列表 /// 作  者:Admin.Core /// /// /// /// public async Task> QueryAsync(Expression> expression) { return await BaseDal.QueryAsync(expression); } /// /// 功能描述:按照特定列查询数据列表带条件排序 /// 作  者:Admin.Core /// /// /// 过滤条件 /// 查询实体条件 /// 排序条件 /// public async Task> QueryAsync(Expression> expression, Expression> whereExpression, string strOrderByFileds) { return await BaseDal.QueryAsync(expression, whereExpression, strOrderByFileds); } /// /// 功能描述:查询一个列表 /// 作  者:Admin.Core /// /// 条件表达式 /// 排序字段,如name asc,age desc /// 数据列表 public async Task> QueryAsync(Expression> whereExpression, Expression> orderByExpression, bool isAsc = true) { return await BaseDal.QueryAsync(whereExpression, orderByExpression, isAsc); } public async Task> QueryAsync(Expression> whereExpression, string strOrderByFileds) { return await BaseDal.QueryAsync(whereExpression, strOrderByFileds); } /// /// 功能描述:查询一个列表 /// 作  者:Admin.Core /// /// 条件 /// 排序字段,如name asc,age desc /// 数据列表 public async Task> QueryAsync(string strWhere, string strOrderByFileds) { return await BaseDal.QueryAsync(strWhere, strOrderByFileds); } /// /// 根据sql语句查询 /// /// 完整的sql语句 /// 参数 /// 泛型集合 public async Task> QuerySqlAsync(string strSql, SugarParameter[] parameters = null) { return await BaseDal.QuerySqlAsync(strSql, parameters); } /// /// 执行sql语句 /// /// 完整的sql语句 /// 参数 /// 泛型集合 public async Task ExecSqlAsync(string strSql, SugarParameter[] parameters = null) { return await BaseDal.ExecSqlAsync(strSql, parameters); } /// /// 根据sql语句查询 /// /// 完整的sql语句 /// 参数 /// DataTable public async Task QueryTableAsync(string strSql, SugarParameter[] parameters = null) { return await BaseDal.QueryTableAsync(strSql, parameters); } /// /// 功能描述:查询前N条数据 /// 作  者:Admin.Core /// /// 条件表达式 /// 前N条 /// 排序字段,如name asc,age desc /// 数据列表 public async Task> QueryAsync(Expression> whereExpression, int intTop, string strOrderByFileds) { return await BaseDal.QueryAsync(whereExpression, intTop, strOrderByFileds); } /// /// 功能描述:查询前N条数据 /// 作  者:Admin.Core /// /// 条件 /// 前N条 /// 排序字段,如name asc,age desc /// 数据列表 public async Task> QueryAsync( string strWhere, int intTop, string strOrderByFileds) { return await BaseDal.QueryAsync(strWhere, intTop, strOrderByFileds); } /// /// 功能描述:分页查询 /// 作  者:Admin.Core /// /// 条件表达式 /// 页码(下标0) /// 页大小 /// 排序字段,如name asc,age desc /// 数据列表 public async Task> QueryAsync( Expression> whereExpression, int intPageIndex, int intPageSize, string strOrderByFileds) { return await BaseDal.QueryAsync( whereExpression, intPageIndex, intPageSize, strOrderByFileds); } /// /// 功能描述:分页查询 /// 作  者:Admin.Core /// /// 条件 /// 页码(下标0) /// 页大小 /// 排序字段,如name asc,age desc /// 数据列表 public async Task> QueryAsync( string strWhere, int intPageIndex, int intPageSize, string strOrderByFileds) { return await BaseDal.QueryAsync( strWhere, intPageIndex, intPageSize, strOrderByFileds); } public async Task> QueryPageAsync(Expression> whereExpression, int intPageIndex = 1, int intPageSize = 20, string strOrderByFileds = null) { return await BaseDal.QueryPageAsync(whereExpression, intPageIndex, intPageSize, strOrderByFileds); } public async Task> QueryMuchAsync(Expression> joinExpression, Expression> selectExpression, Expression> whereLambda = null) where T : class, new() { return await BaseDal.QueryMuchAsync(joinExpression, selectExpression, whereLambda); } /// /// 同步 /// /// /// public List Query(Expression> whereExpression) { return BaseDal.Query(whereExpression); } } }