GetTable不适用于Azure SQL表(Xamarin表单)

时间:2017-01-20 21:01:43

标签: c# sql azure xamarin xamarin.forms

我正在与我的Xamarin Forms移动应用程序一起探索Azure移动应用程序服务,并且我已经创建了一个移动应用程序服务,sql server和sql数据库。

无论如何,经过几个小时,我被击败了,我正在寻求帮助。我在我的应用程序的DB中创建了一个基本表,名为Person,具有Id,FirstName,LastName列。这些列都是nvarchar(50),只是为了方便和测试。我已经确认数据库/表存在于SQL Server Management Studio中,并使用SSMS对该表中的选择,插入等进行了必要的测试。

从我读过的所有内容中,我应该能够做到以下几点并且一切正常:

  1. 将以下内容添加到PersonController类:

    public static MobileServiceClient MobileService = new MobileServiceClient("https://somethinghere.azurewebsites.net");
    
  2. 使用Id,FirstName,LastName创建一个Person类。(所有字符串)

  3. 最后添加提供的代码,并从azure门户网站修改为" Person",将数据库连接到现有的应用程序:

    //CurrentPlatform.Init();
    Person person = new Person{ Id = "a1", FirstName = "John", LastName = "Doe" };
    await MobileService.GetTable<Person>().InsertAsync(person);
    
  4. 注意:本指南说要使用CurrentPlatform.Init(),但我无法找到任何相关信息,即使使用Microsoft.WindowsAzure.MobileServices也会引发错误;&#39;所以我评论了它。

    我想知道我做错了什么。我得到以下两个错误,似乎与GetTable没有得到任何数据返回:

     1. //This is an error I see when I highlight over the breakpoint at the GetTable<Person> line of code
          Could not resolve type: MobileService.GetTable<global::TestAzure.Person  
    
     2. //This is the exception message returned from a try/catch I added around the code.
          "The resource you are looking for has been removed, had its name changed, or is temporarily unavailable." 
    

1 个答案:

答案 0 :(得分:2)

CurrentPlatform.Init()

的iOS

在iOS FinishedLaunching的{​​{1}}方法中,添加以下代码行:

AppDelegate

Link to sample iOS AppDelegate

的Android

在Android Microsoft.WindowsAzure.MobileServices.CurrentPlatform.Init(); 的{​​{1}}方法中,添加以下代码行:

OnCreate

Link to sample Android MainActivity