每当学习新技术时,我都喜欢写最简单的例子。通常这意味着引用数量最少的控制台应用程序。我一直在尝试编写一个读取和写入 Azure 表存储的应用程序,但收效甚微。我已使用此操作指南作为基础,但尝试在 Main 方法中执行所有操作。类似的方法适用于 blob 存储,但表存储会带来麻烦。
我能够使用此代码创建一个表。
static void Main(string[] args)
{
Microsoft.WindowsAzure.Storage.Table.CloudTableClient tableClient =
new Microsoft.WindowsAzure.Storage.Table.CloudTableClient(
new Uri("http://mystorage.table.core.windows.net/"),
new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials("[somename]", "[somekey]"));
CloudTable table = tableClient.GetTableReference("people");
table.CreateIfNotExists();
}
运行此代码后,我可以使用Azure Storage Explorer在我的存储中看到一个表。(仍然没有弄清楚如何在 manage.windowsazure.com 中查看表格。)
但是,如果我尝试插入记录(如前面提到的操作指南中所述),我会遇到冲突 409 EntityAlreadyExists。Azure 存储资源管理器未在我的表中显示任何记录。
CustomerEntity customer1 = new CustomerEntity("Harp", "Walter");
customer1.Email = "Walter@contoso.com";
customer1.PhoneNumber = "425-555-0101";
TableOperation insertOperation = TableOperation.Insert(customer1);
table.Execute(insertOperation);
另外,我对两个重叠的命名空间感到困惑。Microsoft.WindowsAzure.Storage.Table 和 Microsoft.WindowsAzure.StorageClient 都包含例如 CloudTableClient 类。为什么有两个客户端命名空间,我应该使用哪一个?
编辑原来记录确实存在。只需在 Azure 表资源管理器中双击表就不会显示表内容。您必须单击查询。最后一个问题仍然存在。为什么有两个命名空间?