/// <summary> /// 获取分页后的数据 /// </summary> /// <typeparam name="T">实体类型</typeparam> /// <param name="source">数据源IQueryable</param> /// <param name="pagination">分页参数</param> /// <returns></returns> public static IQueryable <T> GetPagination <T>(this IQueryable <T> source, IDataRepositoryPagination pagination) { pagination.DataRepositoryFilter(source); pagination.RecordCount = source.Count(); pagination.DataRepositoryOrderBy(source); //source = source.OrderBy(pagination.SortField, pagination.SortType); return(source.Skip((pagination.PageIndex - 1) * pagination.PageRows).Take(pagination.PageRows)); }
/// <summary> /// 查询实体集合 /// </summary> /// <typeparam name="T">实体</typeparam> /// <param name="where">where条件(确保语句是安全的)</param> /// <param name="alias">主表别名</param> /// <param name="parameters">参数</param> /// <param name="pagination">分页参数</param> /// <param name="tran">是否开启事务</param> /// <param name="transId">事务标识(为null时使用当前线程id)</param> /// <returns></returns> public virtual List <T> GetEntityList <T>(string where, string alias, List <DbParameter> parameters, IDataRepositoryPagination pagination, bool tran = false, int?transId = null) where T : class, new() { string sql = string.Format("SELECT * FROM {0} {1} WHERE 1=1 AND {2}", GetTableName <T>(), alias, where); return(GetList <T>(sql, parameters, CommandType.Text, tran, transId)); }
/// <summary> /// 查询实体集合 /// </summary> /// <typeparam name="T">实体</typeparam> /// <param name="where">where条件(确保语句是安全的)</param> /// <param name="alias">主表别名</param> /// <param name="pagination">分页参数</param> /// <param name="tran">是否开启事务</param> /// <param name="transId">事务标识(为null时使用当前线程id)</param> /// <returns></returns> public virtual List <T> GetEntityList <T>(string where, string alias, IDataRepositoryPagination pagination, bool tran = false, int?transId = null) where T : class, new() { return(GetEntityList <T>(where, alias, null, pagination, tran, transId)); }