API将数据库链接到MVC项目和Mobile App Xamarin

时间:2018-09-25 12:39:17

标签: api azure model-view-controller xamarin.forms visual-studio-2017

我是Xamarin的新手,正在使用VS 2017 Enterprise和最新的Xamarin更新。

我想添加一个API,以便Db可以与我的移动应用程序和MVC项目进行通信。

我创建了一个跨平台的空白.NET Standard项目。

我在解决方案中添加了一个新文件夹,并在该文件夹中添加了一个类来编写我的RestAPI代码。

在编写代码时,我使用了HttpClient,但它给我一个错误,询问我是否为

  

缺少程序集或参考。

如果我不能使用HttpClient,如何为REstApi编写代码?

或者有没有更好的方法允许我的Db与我的MVC项目和移动应用程序通信?

我将在Azure上发布我的MVC项目和移动应用程序。谢谢

1 个答案:

答案 0 :(得分:0)

首先

对于出现的错误:missing an assembly or reference.

HttpClient位于“ System.Net.Http”命名空间中。

您需要添加:using System.Net.Http;

here


第二次

是否有更好的方法允许您的Db与您的 MVC项目移动应用通信?

,发布MVC项目后,还有更好的方法

您可以使用 Azure Mobile Client

  • 第1步

打开“ Package Manager控制台”并输入

  

安装软件包Microsoft.Azure.Mobile.Client-版本4.0.2

或者您可以从Azure Mobile Client SDK

获取最新版本
  

该库提供了用于创建连接到Azure移动应用程序的Windows和Xamarin移动应用程序的功能

  • 第2步

假设您有一个名为“用户”的类, 并且您想要读取,插入,更新和删除数据

看看下面的代码示例:

using Microsoft.WindowsAzure.MobileServices;
using System.Collections.ObjectModel;
using System.Threading.Tasks;

 public class User {/*....*/ }


  public class AzureServices
  {
      private static readonly string url = "http://xxxxx.azurewebsites.net";

      /*
       * The Azure Mobile Client SDK provides the MobileServiceClient class, 
       * which is used by a Xamarin.Forms application to access the Azure Mobile Apps instance
      */

      public MobileServiceClient Client;
      public IMobileServiceTable<User> UserTable;

      public AzureServices()
      {
          /* 
           * When the MobileServiceClient instance is created,
           * an application URL must be specified to identify the Azure Mobile Apps instance.
          */

          Client = new MobileServiceClient(url);

          //calling the GetTable method on the MobileServiceClient instance, which returns a IMobileServiceTable<User> reference.
          UserTable = Client.GetTable<User>();
      }

      // Querying Data
      public async Task<ObservableCollection<User>> GetAllUsers(bool sync = false)
      {
          var userList = await UserTable.ToEnumerableAsync();
          return new ObservableCollection<User>(userList);
      }
      //Inserting Data
      public async Task AddUser(User item)
      {
          await UserTable.InsertAsync(item);
      }
      // Updating Data
      public async Task UpdateUser(User item)
      {
          await UserTable.UpdateAsync(item);
      }
      // Deleting Data
      public async Task DeleteUser(User item)
      {
          await UserTable.DeleteAsync(item);
      }

  }

有关更多信息,请访问Azure Mobile App