无法在Azure移动服务Win Phone 8.1中找到表

时间:2015-01-31 17:22:51

标签: c# database windows-phone-8.1 azure-mobile-services

我目前正在尝试将Azure Mobile Service实施到我的Windows Phone 8.1应用程序中。 我关注Azure.Microsoft.com上的文档: Get started with Mobile Services我用该服务创建了一个新的Windows Phone 8.1项目。我尝试使用确切配置作为样本创建一个新表,并使用新的Class来匹配表名和&领域。下面是原始代码,我将所有TodoItem都改为'Test'

我一直收到错误:

  

错误:表'测试'不存在

我尝试为后端制作Javascript.NET版本,但它们仍然失败了 我无法找到我的桌子,因为我错过了一步?

sealed partial class MainPage : Page
{
    private MobileServiceCollection<Test, Test> items;
    private IMobileServiceTable<Test> todoTable = App.MobileService.GetTable<Test>();

    public MainPage()
    {
        this.InitializeComponent();
    }

    private async Task InsertTodoItem(Test todoItem)
    {
        await todoTable.InsertAsync(todoItem);
        items.Add(todoItem);
    }

    private async Task RefreshTodoItems()
    {
        MobileServiceInvalidOperationException exception = null;
        try
        {
            items = await todoTable
                .Where(todoItem => todoItem.Complete == false)
                .ToCollectionAsync();
        }
        catch (MobileServiceInvalidOperationException e)
        {
            exception = e;
        }

        if (exception != null)
        {
            await new MessageDialog(exception.Message, "Error loading items").ShowAsync();
        }
        else
        {
            ListItems.ItemsSource = items;
            this.ButtonSave.IsEnabled = true;
        }
    }

    private async Task UpdateCheckedTodoItem(Test item)
    {
        await todoTable.UpdateAsync(item);
        items.Remove(item);
        ListItems.Focus(Windows.UI.Xaml.FocusState.Unfocused);
    }

    private async void ButtonRefresh_Click(object sender, RoutedEventArgs e)
    {
        ButtonRefresh.IsEnabled = false;
        await RefreshTodoItems();

        ButtonRefresh.IsEnabled = true;
    }

    private async void ButtonSave_Click(object sender, RoutedEventArgs e)
    {
        var todoItem = new Test { Text = TextInput.Text };
        await InsertTodoItem(todoItem);
    }

    private async void CheckBoxComplete_Checked(object sender, RoutedEventArgs e)
    {
        CheckBox cb = (CheckBox)sender;
        Test item = cb.DataContext as Test;
        await UpdateCheckedTodoItem(item);
    }

    protected override async void OnNavigatedTo(NavigationEventArgs e)
    {
        await RefreshTodoItems();
    }
}

2 个答案:

答案 0 :(得分:0)

对于Javascript后端:

进入azure门户并选择您的移动服务。转到说明数据的选项卡。单击“添加表名称Test。”。

对于.Net:

在Visual Studio中打开项目。将Test类添加到DataObjects文件夹。右键单击Controllers文件夹 - &gt;添加 - &gt;控制器。选择Microsoft Azure移动服务表控制器。选择模型类的Test类,数据上下文类应该只有一个选项。

答案 1 :(得分:0)

您遵循本文

Get started with Mobile Services

你看到了这个

enter image description here

通过这个你得到了源代码。这样你就有了两个项目:

  • .Net BackEnd项目
  • 客户端应用项目

当您进行更改时,您只更改了客户端应用程序项目(因为MainPage属于客户端应用程序)。

如果您在客户端应用程序项目中将TodoItem类更改为Test类,则需要对.NET项目执行相同操作,这需要进行更改:

  • 将TodoItemController更改为TestController
  • 将TodoItem更改为Test

执行干净,然后构建,如果没有任何错误,则可以发布到Azure。

为了帮助理解它,我建议看到以下示例

本文包含一步一步创建一个简单的后端,就像您正在做的那样,并提供可以帮助您的提示。