azure表存储不添加新字段

时间:2015-08-23 19:28:26

标签: c# azure-table-storage

我在 Azure表存储中创建了一个表,并使用从TableEntity派生的Entity类添加了一些记录。在此之后,我向该类添加了另外两个属性并尝试插入更多记录,但看起来新字段未添加到存储中,并且只写入和读取旧字段。 我错过了什么吗?我还需要做些什么才能改变表的布局?

2 个答案:

答案 0 :(得分:1)

首先,我想确保了解您的情况。您通过添加另外两个属性修改了现有实体类,然后在表中添加了新实体。您无法看到两个新添加的属性,但只能更新/检索旧属性。如果这是您尝试实施的方案,请检查以下内容。您应该能够添加新属性。

  1. 在从TableEntity类派生实体的类中添加新属性。 Optional1Optional2是您要添加的新属性。

     public class CustomerEntity : TableEntity
     {
            public CustomerEntity() { }
            public CustomerEntity(string lastName, string firstName)
            {
                this.PartitionKey = lastName;
                this.RowKey = firstName;
            }
    
            public string Email { get; set; }
            public string CellPhoneNumber { get; set; }
    
            public string Optional1 { get; set; }
            public string Optional2 { get; set; }    
        }
    }
    
  2. 确保设置Optional1Optional2值。请参阅下面的示例代码。

    var customer = new CustomerEntity(LastName, FirstName)
    { 
        Email = Email,
        CellPhoneNumber = cellPhoneNumber,
        Optional1 = optional1,
        Optional2 = optional2,
    }
    
    TableOperation insertOperation = TableOperation.Insert(customer);
    TableName.Execute(insertOperation);
    
  3. 注意:我没有编译上面的代码所以可能有拼写错误等。

    谢谢, 昂

答案 1 :(得分:1)

感谢您的信息,但最后我发现问题是另一个问题。我使用Vs在类中创建属性,并且执行此Vs创建的属性添加内部setter
看起来在这种情况下Azure存储客户端只是忽略这些属性而不是创建不写入和不读取的字段,完全没有错误。 删除内部关键字开始正常工作。