gpt4 book ai didi

Azure表: how to manage class versions

转载 作者:行者123 更新时间:2023-12-03 04:52:17 25 4
gpt4 key购买 nike

我正在尝试开始使用 Azure 表。我了解到 Azure 表存储特定类的对象。您能告诉我该表如何适应类的版本控制吗?

假设有一个具有属性 p1 的类 A,我们已将类型 A 的对象 o1 和 o2 存储到表 T 中。稍后我们将另一个属性 p2 添加到 A 中。现在,会发生什么样的行为当我们使用 A 的新定义来检索 o1 和 o2 时,我们会得到什么?它会抛出一些错误吗?如果不是,那么检索时这些对象的 p2 值是多少?

或者开发人员是否负责管理其应用程序中的不同类定义?

最佳答案

非常重要的注意事项:不要将 Azure 表视为对象存储!将其视为具有非固定架构的键值存储

举个具体的例子。当您存储来自 A 类o1o2 时,您的表中将有 2 行:

  • PartitionKey_1、RowKey_1、p1_1
  • PartitionKey_2、RowKey_2、p1_2

然后向该类添加新属性并存储该对象。结果将是第三行:

  • PartitionKey_3、RowKey_3、p_3、p2_1

稍后您可以检索所需的所有数据并将其映射到具有与表列对应的属性名称的类的实例!

如果您尝试将前两条记录提取到最新的 A 类中,您将仅获得 p2 属性的 NULL(或值类型的默认值) .

如果您尝试将第 3 行获取到较早的 A 类中,您将只能获得 p1 属性值。 (最终您可能会看到一个错误,但不是关键错误,您仍然可以将表中的 P1 列映射到对象的 P1 属性)。

作为引用Understanding Table Service data model对您来说是非常好的起点。

当您刚开始时,我还建议您浏览 Windows Azure Storage Client library 2.0 - Tables Deep Dive 。本文非常详细地介绍了如何从 Azure 表中保存和获取数据。

关于Azure表: how to manage class versions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18824752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com