Xamarin Forms - получить количество строк таблицы Azure - PullRequest
0 голосов
/ 01 февраля 2019

Я использую следующий код, чтобы получить счетчик всех строк в таблице Azure, которую я затем использую позже в той же функции.Однако я обнаружил, что когда я пытаюсь использовать переменную tCount, в некоторых случаях, когда у меня большое количество, полное число не возвращается ко времени, когда я использую переменную.

Например, одна таблица Iзнаю, имеет более 1600 строк, но когда я смотрю на значение tCount, оно только 900 с нечетным, если я помещаю 1-секундную задержку после строки

tCount = ((IQueryResultEnumerable<T>)tableRowCount).TotalCount;

, возвращается правильный счет, но яЯ предпочел бы сделать это без добавления задержки.

Я также попытался поместить код в асинхронную задачу и дождаться ее, но получил тот же результат.Есть ли другой способ сделать это?

var table = Client.GetSyncTable<T>();

            var tableRowCount = (await table.Take(0)
                   .IncludeTotalCount()
                   .ToEnumerableAsync());

            long tCount = 0;
            tCount = ((IQueryResultEnumerable<T>)tableRowCount).TotalCount;

1 Ответ

0 голосов
/ 01 февраля 2019

Вместо того, что вы делаете, вы можете запрашивать метаданные базы данных и представления динамического управления, чтобы узнать количество строк в таблице.Этот метод будет быстрее.

SELECT t.name ,s.row_count from sys.tables t
JOIN sys.dm_db_partition_stats s
ON t.object_id = s.object_id
AND t.type_desc = ‘USER_TABLE’
AND t.name like ‘%YourTableName%’
AND s.index_id = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...