我正在使用IMobileServiceSyncTable,并希望获得总计数,而无需检索本地数据库中的所有行。这是我的疑问:
var item = await itemTable
.Where(i => !i.Deleted)
.IncludeTotalCount()
.Take(0)
.ToEnumerableAsync();
来自其他帖子,我应该可以调用item.TotalCount但是不会出现。用 ToListAsync()替换 ToEnumerableAsync()只是给我计算哪个ofcourse将为0因为我使用了 Take(0)
任何人都知道如何在不实际检索所有项目的情况下获得总计数?
答案 0 :(得分:3)
你得到的Enumerable应该能够被转换为IQueryResultEnumerable(https://github.com/Azure/azure-mobile-apps-net-client/blob/master/sdk/src/Microsoft.WindowsAzure.MobileServices/Table/Query/IQueryResultEnumerable.cs),这是定义TotalCount属性的地方。
ToList还会返回一个列表,允许您执行上述操作(https://github.com/Azure/azure-mobile-apps-net-client/blob/e9b2a32063063ebd8889d08df8568d763543eb61/sdk/src/Microsoft.WindowsAzure.MobileServices/Table/Sync/MobileServiceSyncTable.Generic.cs#L201)因此,这两种方法都可以使用。