如何在.Net中使用Azure表存储

微软的Azure云计算平台提供了可互操作的云计算服务,该服务由开源技术和基于标准的技术组成。 您可以使用Azure存储帐户来处理所有类型的数据,包括文件,blob,队列和表。

Azure表存储是可伸缩的,非关系的,键值存储系统,您可以利用它在云中存储大量数据。 本文讨论了Azure Table存储以及我们如何在.Net中使用它。

[入门: Azure云迁移指南 •教程: Google Cloud入门 | 通过InfoWorld的云计算新闻通讯了解云计算的最新发展。 ]

在Visual Studio 2017中创建控制台应用程序项目

首先,让我们在Visual Studio中创建一个控制台应用程序项目。 如果您的系统已启动并运行Visual Studio 2017,请按照下面概述的步骤创建项目。

  1. 启动Visual Studio 2017 IDE。
  2. 单击文件>新建>项目。
  3. 从显示的模板列表中选择“控制台应用程序(.Net Framework)”。
  4. 指定项目的名称。
  5. 指定项目的位置。
  6. 选择您要使用的Framework版本。
  7. 单击确定保存项目。

执行以下步骤将在Visual Studio中生成一个新的控制台应用程序项目。 您可以使用该项目来编写和执行以下各节中给出的程序。

创建一个新的Azure存储帐户

若要在Azure中使用Blob,文件,表或队列,您将需要一个Azure存储帐户 。 Azure存储帐户是Azure云中的唯一名称空间,可用于存储和检索数据。 当然,您首先需要创建一个Azure帐户(如果您没有帐户),然后使用它来创建Azure存储帐户。 如果您没有Azure帐户,则可以在此处创建一个免费的Azure帐户

拥有Azure帐户后,您可以按照以下步骤在Azure中创建存储帐户:

  1. 打开Azure门户。
  2. 点击“创建资源”,然后选择“存储帐户”。
  3. 指定订阅和资源组。
  4. 指定存储帐户的名称和位置。
  5. 接受性能(“标准”),帐户类型(“ StorageV2”),复制(“ RA-GRS”)和访问层(“热”)的默认值。
  6. 单击“下一步:高级>”按钮。
  7. 在“高级”和“标签”选项卡中根据需要指定详细信息(出于我们的目的,默认设置为“ OK”)。
  8. 单击“下一步:查看+创建”以创建存储帐户。
天蓝色桌子收纳图2 IDG

创建Azure存储帐户的最后一步-查看设置,然后单击“创建”。

现在,您的Azure存储帐户已创建,您可以使用它来与Azure表一起使用。

使用C#创建新的Azure表

选择您之前创建的控制台项目,然后从NuGet程序包管理器中添加以下两个NuGet程序包。

WindowsAzure.Storage
Microsoft.WindowsAzure.ConfigurationManager

以下代码段说明了如何连接到上面创建的Azure存储帐户,然后创建一个存储表(如果不存在)。

static void Main(string[] args)
        {
            string connectionString = ConfigurationManager.AppSettings.Get("TableStorageConnectionString");
            CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(connectionString);
            CloudTableClient cloudTableClient = cloudStorageAccount.CreateCloudTableClient();
            CloudTable cloudTable = cloudTableClient.GetTableReference("DemoTable");
            cloudTable.CreateIfNotExists();
            Console.ReadKey();
        }

当您执行上述代码时,如果不存在,将创建一个名为DemoTable的新表。 您可以登录Azure帐户,并从Azure Storage Explorer查看刚刚创建的表,该表可免费下载用于Windows,MacOS和Linux。

使用C#在Azure表中创建实体

在Azure表内部,您存储实体。 实体必须具有三个必填属性,即PartitionKey,RowKey和Timestamp。 若要创建实体类,应创建一个类,该类扩展与Microsoft.WindowsAzure.Storage命名空间有关的TableEntity类。 这是典型实体的示例。

public class AuthorEntity : TableEntity
    {
        public AuthorEntity(int id, string firstName, string lastName)
        {
            Id = id;
            FirstName = firstName;
            LastName = lastName;
            PartitionKey = id.ToString();
            RowKey = firstName + lastName;
        }
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }

以下代码段说明了如何将实体存储在Azure表中。

static void Main(string[] args)
        {
            string connectionString = ConfigurationManager.AppSettings.Get("TableStorageConnectionString"); 
            CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(connectionString);
            CloudTableClient cloudTableClient = cloudStorageAccount.CreateCloudTableClient();
            CloudTable cloudTable = cloudTableClient.GetTableReference("DemoTable");
            cloudTable.CreateIfNotExists();
            var author = new AuthorEntity(1, "Joydip", "Kanjilal");
            TableOperation tableOperation = TableOperation.Insert(author);
            cloudTable.Execute(tableOperation);
            Console.ReadKey();
        }

使用C#从Azure表读取实体

要检索实体,您将需要获取CloudTable引用,然后使用它来调用Execute方法以运行TableOperation。 以下代码段说明了如何从Azure Table存储读取数据。 请注意TableOperation.Retrieve方法的用法。

string connectionString = ConfigurationManager.AppSettings.Get("TableStorageConnectionString"); 
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(connectionString);
CloudTableClient cloudTableClient = cloudStorageAccount.CreateCloudTableClient();
CloudTable cloudTable = cloudTableClient.GetTableReference("DemoTable");
TableOperation tableOp = TableOperation.Retrieve<AuthorEntity>("3", "JoydipKanjilal");
TableResult tr = cloudTable.Execute(tableOp);           
var data = tr.Result as AuthorEntity;

使用C#更新Azure表中的实体

若要更新Azure表中的实体,首先需要检索TableOperation的实例,如下面的代码片段所示。

var partitionKey = "1";
var rowKey = "JoydipKanjilal";
TableOperation tableOp = TableOperation.Retrieve<AuthorEntity>(partitionKey, rowKey);

接下来,您应该执行表操作并检索此代码片段中所示的实体实例。

TableResult result = cloudTable.Execute(tableOp);
var data = result.Result as AuthorEntity;

现在,您已经检索了实体实例,您可以编写代码来更新实体,并调用TableOperation类的Replace方法来更新实体,如下所示。

TableResult result = cloudTable.Execute(tableOp);
var data = result.Result as AuthorEntity;
//Write code here to update the author entity.  
if (result != null)
{
     TableOperation updateOp = TableOperation.Replace(data);
     cloudTable.Execute(updateOp);
}

使用C#从Azure表中删除实体

若要删除实体,除了在TableOperation类上调用Delete方法外,您将采用与更新实体时相同的方法。

var partitionKey = "1";
var rowKey = "JoydipKanjilal";
TableOperation tableOp = TableOperation.Retrieve<AuthorEntity>(partitionKey, rowKey);
TableResult result = cloudTable.Execute(tableOp);
var data = result.Result as AuthorEntity;    
if (result != null)
 {
    TableOperation deleteOp = TableOperation.Delete(data);
    cloudTable.Execute(deleteOp);
 }

在Microsoft Azure行话中,表表示一组实体。 Azure表存储使您可以存储和管理实体。 在Azure表存储中,一个实体是一行数据,一个表是一组实体。 尽管对您可能拥有的表数量或表中包含的数据量没有严格限制,但是Microsoft提供了Azure存储规模目标以实现最佳性能。 Azure表存储规模目标将列表500TB作为表的最大大小,将1MB作为实体的最大大小。

From: https://www.infoworld.com/article/3331846/how-to-use-azure-table-storage-in-net.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值