Xamarin Forms-获取天蓝色表的行数

时间:2019-02-01 10:03:15

标签: c# xamarin.forms azure-sql-database

我使用以下代码获取azure表中所有行的计数,然后稍后在同一函数中使用。但是,我发现当我尝试使用变量tCount时,在某些情况下,如果我的计数很大,那么在使用变量时就不会返回全部计数。

例如,我知道一个表有1600多行,但是如果我将tCount的值放在行之后1秒钟,则当我查看tCount的值时,它只有900奇数

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 :(得分:0)

您可以查询数据库元数据和“动态管理视图”来了解表具有的行数,而不是正在执行的操作。这种方法会更快。

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