public override void QueryList(IDbAccesser dba, ISqlSelectArgs args) { var pagingInfo = args.PagingInfo; if (PagingInfo.IsNullOrEmpty(pagingInfo) || this.GetPagingLocation(pagingInfo) == PagingLocation.Memory) { base.QueryList(dba, args); } else { //转换为分页查询 SQL var parts = ParsePagingSqlParts(args.FormattedSql); CreatePagingSql(ref parts, pagingInfo); //读取分页的实体 using (var reader = dba.QueryDataReader(parts.PagingSql, args.Parameters)) { this.FillDataIntoList( reader, ReadDataType.ByName, args.List, args.FetchingFirst, PagingInfo.Empty, args.MarkTreeFullLoaded ); } QueryTotalCountIf(dba, pagingInfo, parts, args.Parameters); } }
/// <summary> /// 使用 Sql 进行查询。 /// 分页默认实现为使用内存进行分页。 /// </summary> /// <param name="dba">The dba.</param> /// <param name="args">The arguments.</param> public virtual void QueryList(IDbAccesser dba, ISqlSelectArgs args) { if (_hasLOB) { args.FormattedSql = this.ReplaceLOBColumns(args.FormattedSql); } var reader = dba.QueryDataReader(args.FormattedSql, args.Parameters); this.FillDataIntoList( reader, ReadDataType.ByName, args.List, args.FetchingFirst, args.PagingInfo, args.MarkTreeFullLoaded ); }
/// <summary> /// 使用 Sql 进行查询。 /// 分页默认实现为使用内存进行分页。 /// </summary> /// <param name="dba">The dba.</param> /// <param name="args">The arguments.</param> public virtual void QueryList(IDbAccesser dba, ISqlSelectArgs args) { if (_hasLOB) { args.FormattedSql = this.ReplaceLOBColumns(args.FormattedSql); } using (var reader = dba.QueryDataReader(args.FormattedSql, args.Parameters)) { this.FillDataIntoList( reader, ReadDataType.ByName, args.List, args.FetchingFirst, args.PagingInfo, args.MarkTreeFullLoaded ); } }