public bool MoveNext() { // se não tem mais elementos, não tem mais grupos if (!en.MoveNext()) return false; var page = new ArrayList(pageSize); int n = pageSize; do { page.Add(en.Current); } while (--n > 0 && en.MoveNext()); this.currentPage = new PageEnumerable(page, pageIndex++); return true; }
/// <summary> /// 读取模型实例列表。 /// </summary> /// <param name="cancellationToken">取消标记。</param> /// <returns>返回模型实例列表。</returns> protected async Task <IPageEnumerable <TModel> > LoadPageAsync(CancellationToken cancellationToken = new CancellationToken()) { var models = new PageEnumerable <TModel>(); models.Page = PageIndex ?? 1; models.PageSize = Size ?? 20; using (var reader = await _db.ExecuteReaderAsync(_sqlGenerator.Query(this).ToString(), cancellationToken: cancellationToken)) { while (await reader.ReadAsync(cancellationToken)) { models.Add(Entity.Read <TModel>(reader)); } if (await reader.NextResultAsync(cancellationToken) && await reader.ReadAsync(cancellationToken)) { models.Size = reader.GetInt32(0); } } return(models); }
/// <summary> /// 读取模型实例列表。 /// </summary> /// <returns>返回模型实例列表。</returns> protected IPageEnumerable <TModel> LoadPage() { var models = new PageEnumerable <TModel>(); models.Page = PageIndex ?? 1; models.PageSize = Size ?? 20; using (var reader = _db.ExecuteReader(_sqlGenerator.Query(this).ToString())) { while (reader.Read()) { models.Add(Entity.Read <TModel>(reader)); } if (reader.NextResult() && reader.Read()) { models.Size = reader.GetInt32(0); } } return(models); }
public bool MoveNext() { // se não tem mais elementos, não tem mais grupos if (!en.MoveNext()) { return(false); } var page = new ArrayList(pageSize); int n = pageSize; do { page.Add(en.Current); } while (--n > 0 && en.MoveNext()); this.currentPage = new PageEnumerable(page, pageIndex++); return(true); }
public void Reset() { this.en = this.source.GetEnumerator(); this.currentPage = null; this.pageIndex = 0; }