C# 输出Azure表中的实体数

C# 输出Azure表中的实体数,c#,azure,windows-store-apps,azure-mobile-services,azure-table-storage,C#,Azure,Windows Store Apps,Azure Mobile Services,Azure Table Storage,我有这个问题,我已经疯狂了几个小时了。我有一个存储在Azure中的表,其中包含用户想要完成的任务。每个任务都有一个状态,该状态可以是1、2或3的整数值,分别对应于要执行的任务、正在进行的任务或已完成的任务。我试图创建三个单独的仪表,告诉用户在这三个类别中他们有多少任务,但我尝试的每件事都会抛出一个MobileServiceInvalidOperation错误,我似乎无法找出原因 --编辑-- 我在程序的另一部分遇到了类似的问题,结果是权限问题。一旦我包含了我在另一个页面上使用的用户身份验证代码,

我有这个问题,我已经疯狂了几个小时了。我有一个存储在Azure中的表,其中包含用户想要完成的任务。每个任务都有一个状态,该状态可以是1、2或3的整数值,分别对应于要执行的任务、正在进行的任务或已完成的任务。我试图创建三个单独的仪表,告诉用户在这三个类别中他们有多少任务,但我尝试的每件事都会抛出一个
MobileServiceInvalidOperation
错误,我似乎无法找出原因

--编辑--

我在程序的另一部分遇到了类似的问题,结果是权限问题。一旦我包含了我在另一个页面上使用的用户身份验证代码,我在该页面上运行的查询就开始工作了。但是,包含该代码并不能阻止在下面的代码上引发此异常。我现在认为问题与应用程序验证用户之前运行的代码有关。如果是这种情况,我将如何确保此代码在验证代码运行之后运行

--结束编辑--

我将在下面列出我的一些尝试:

private MobileServiceCollection<SbTask, SbTask> taskItems;
private IMobileServiceTable<SbTask> taskTable = App.MobileService.GetTable<SbTask>();
我尝试了一些可能不值得一提的其他事情,我一直在寻找这个问题的解决方案——我真正学到的是,这是一个困难的问题,我(显然)还没有真正找到解决方案


提前感谢所有能够提供帮助的人。

因此,问题与身份验证有关。将GetTodo()方法从我的viewmodel类中移到xaml.cs文件中就成功了

private async void GetTodo()
{
    // Can't convert IMobileServiceTableQuery<Int> to 
    // IMobileServiceQuery<AppName.Models.Sbtask>
    IMobileServiceTableQuery<SbTask> query = taskTable
        .Where(t => t.Status == 1)
        .Select(t => t.Status);
}
private async void GetTodo()
{
    IMobileServiceTableQuery<int> query = taskTable
        .Where(t => t.Status == 1)
        .Select(t => t.Status);

    // MobileServiceInvalidOperationException
    // Additional information: Error: Unauthorized
    List<int> statusOne = await query.ToListAsync();

    Value = statusOne.Count;  // Also tried statusOne.Sum();
}
private async void GetTodo()
{
    var query = taskTable
        .Where(t => t.Status == 1)
        .Select(t => t.Status)
        .IncludeTotalCount();

    // MobileServiceInvalidOperationException
    // Additional information: Error: Unauthorized
    var results = await query.ToEnumerableAsync();

    long count = ((ItotalCountProvider)results).TotalCount;
    int counts = Int32.Parse(count.ToString());

    List<int> stats = await query.ToListAsync();

    for (int i = 0; i < counts; i++)
    {
        Value += stats[i];
    }
}
private async void GetTodo()
{
    var query = taskTable
        .Where(t => t.Status == 1)
        .Select(t => t.Status)
        .IncludeTotalCount();

    // MobileServiceInvalidOperationException
    // Additional information: Error: Unauthorized
    List<int> stats = await query.ToListAsync();

    long count = ((ItotalCountProvider)stats).TotalCount;
    int counts = Int32.Parse(count.ToString());

    for (int i = 0; i < counts; i++)
    {
        Value += stats[i];
    }
}
private async void GetTodo()
{
    // MobileServiceInvalidOperationException
    // Additional information: Error: Unauthorized
    taskItems = await taskTable.ToCollectionAsync();

    Value = taskItems.Count(t => t.Status == 1);
}