Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        /// <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
                );
        }
Beispiel #4
0
        /// <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
                    );
            }
        }