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 TablesSchema Less Key/Value Pair Store,因此与关系数据库 table 不同,table 没有预定义的模式。您可以将任何内容放入 table.

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