protected async Task<IList<IDictionary<string, object>>> FetchEntities(string filter)
        {
            Require.NotEmpty(filter, "filter");

            var query = new TableQuery<DynamicTableEntity>()
                .Select(m_properties)
                .Where(filter);

            List<IDictionary<string, object>> result;
            if (m_take.HasValue)
            {
                query = query.Take(m_take.Value);
                result = new List<IDictionary<string, object>>(m_take.Value);
            }
            else
            {
                result = new List<IDictionary<string, object>>();
            }

            var queryResult = await m_fetchEntities(query, m_continuationToken);
            result.AddRange(queryResult.Results.Select(m_tableEntityConverter.CreatePropertiesFromDynamicTableEntity));

            m_continuationToken = queryResult.ContinuationToken;
            m_executionStarted = true;

            return result;
        }
示例#2
0
        private TableQuery GenerateListTablesQuery(string prefix, int?maxResults)
        {
            TableQuery query = new TableQuery();

            if (!string.IsNullOrEmpty(prefix))
            {
                // Append Max char to end  '{' is 1 + 'z' in AsciiTable
                string uppperBound = prefix + '{';

                query = query.Where(TableQuery.CombineFilters(
                                        TableQuery.GenerateFilterCondition(TableConstants.TableName, QueryComparisons.GreaterThanOrEqual, prefix),
                                        TableOperators.And,
                                        TableQuery.GenerateFilterCondition(TableConstants.TableName, QueryComparisons.LessThan, uppperBound)));
            }

            if (maxResults.HasValue)
            {
                query = query.Take(maxResults.Value);
            }

            return(query);
        }
        private TableQuery GenerateListTablesQuery(string prefix, int? maxResults)
        {
            TableQuery query = new TableQuery();

            if (!string.IsNullOrEmpty(prefix))
            {
                // Append Max char to end  '{' is 1 + 'z' in AsciiTable
                string uppperBound = prefix + '{';

                query = query.Where(TableQuery.CombineFilters(
                    TableQuery.GenerateFilterCondition(TableConstants.TableName, QueryComparisons.GreaterThanOrEqual, prefix),
                    TableOperators.And,
                    TableQuery.GenerateFilterCondition(TableConstants.TableName, QueryComparisons.LessThan, uppperBound)));
            }

            if (maxResults.HasValue)
            {
                query = query.Take(maxResults.Value);
            }

            return query;
        }