Azure 表存储:有没有办法检查属性是否存在?



我是 Azure 的新手,正在执行一些迁移任务。我想出的是需要检查属性是否已经存在于所有实体中,如果没有,我会使用InsertOrMergeEntityAsync方法。

问题是,如何检查该属性是否已存在?通常,实体表示代码中的某个实体,该实体具有一些预定义的属性。但在我的情况下,我需要检查该属性是否存在于存储帐户上的现有数据中

我能想到的方法是检查每个实体是否具有该属性。

示例代码如下所示:

CloudStorageAccount storageAccount = new CloudStorageAccount(new StorageCredentials("xx", "xxx"), true);
CloudTableClient client = storageAccount.CreateCloudTableClient();
CloudTable table = client.GetTableReference("table_name");
table.CreateIfNotExists();
TableOperation op1 = TableOperation.Retrieve<DynamicTableEntity>("partitionKey", "rowkey");
TableResult result = table.Execute(op1);
if (result.Result != null)
{               
if (((DynamicTableEntity)result.Result).Properties.ContainsKey("Emails"))
{
//the table contains the property(column) Emails, then you can do something.
}
else
{
//Does not contain the property(column) Emails, do something
}
}

更详细地阐述伊万的答案。

本质上Azure TablesSchema Less Key/Value Pair Store因此与关系数据库表不同,没有预定义的表架构。您可以将任何东西放在桌子里。

至于如何检查属性是否存在,伊凡的回答是正确的。您必须获取所有实体并检查每个实体中是否存在特定属性。

相关内容

  • 没有找到相关文章

最新更新