Я новичок в работе с хранилищем таблицы Azure, но у меня есть возможность собрать приведенный ниже код, который успешно позволяет моему запросу принять filterQuery (строку), заданную пользователем - например: (Amount le 5000.00) -и извлечь все строки (объекты), соответствующие критериям.
Dim sBuilder As New System.Text.StringBuilder
Dim query = MyBase.CreateQuery(Of cData)("CustomerData")
Dim userQuery = String.Format("(PartitionKey eq '{0}' and {1})", AppID, filterQuery)
sBuilder.AppendFormat(userQuery)
query = query.AddQueryOption("$filter", sBuilder.ToString).AsTableServiceQuery().Take(50)
Dim results As List(Of cData) = query.Execute.ToList
Я должен указать, что этот способ предоставления пользователю возможности указать строку фильтра является ключевым для меня, поскольку я использую универсальный класс, в котором есть словарь, чтобы позволить своему вызывающемупередать любое количество элементов для хранения в данном объекте.Таким образом, это решение позволяет пользователю определять, как он хочет выполнить поиск по своему запросу, и мой код не должен ничего знать о его настраиваемых полях.
Теперь мне нужно добавить нумерацию страниц.Насколько я понимаю, метод «Выполнить», который я использую, обрабатывает разбиение на страницы для вас, поэтому, если существует 7 000 записей, соответствующих критериям, мой код будет работать до тех пор, пока все записи не будут получены / возвращены.Однако вместо этого я хочу позволить своему пользователю указать, сколько объектов он хочет вернуть за раз (максимальное количество результатов), и позволить ему затем совершать последующие вызовы, используя токены продолжения, чтобы получить следующий «пакет» соответствующих сущностей.
Есть мысли о том, как я могу достичь этого, не теряя своей способности позволить пользователю указывать свои критерии поиска в простой строке?