Azure Table 存储:有没有办法检查 属性 是否存在?
Azure Table Storage: Is there a way to check if the property does exist?
我是 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
}
}
详细说明 Ivan 的回答。
本质上 Azure Tables
是 Schema Less Key/Value Pair Store
,因此与关系数据库 table 不同,table 没有预定义的模式。您可以将任何内容放入 table.
关于如何检查一个属性是否存在,Ivan的回答是正确的。您将必须获取所有实体并检查每个实体中是否存在特定属性。
我是 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
}
}
详细说明 Ivan 的回答。
本质上 Azure Tables
是 Schema Less Key/Value Pair Store
,因此与关系数据库 table 不同,table 没有预定义的模式。您可以将任何内容放入 table.
关于如何检查一个属性是否存在,Ivan的回答是正确的。您将必须获取所有实体并检查每个实体中是否存在特定属性。