如何在 Azure Table 存储中为 key/value 属性建模?

How can I model key/value attributes in Azure Table Storage?

对于如何在 Azure Table 存储中实现这一点,我将不胜感激。我已经阅读了几次设计指南,但似乎没有涵盖这种情况。

一般用例是将 0...n key/value 对附加到系统中的一个对象,其中所有可能的值都是预定义的。

假设我们的应用程序被许多学校用来向学生展示他们在当前学期可以选择的所有 classes。在学期开始前,管理员登录系统创建新的 classes 并为其附加属性,以便学生可以根据自己的喜好过滤 classes 列表。管理员管理所有有效属性和有效属性值。

添加到新学期的第一个 class 是 "Arts & Crafts",管理员看到他们需要添加一个新属性以表明使用此 class.他们进入属性管理页面并添加 "Additional Cost" 作为属性,具有三个可能的属性值:"No Additional Cost"、"Under " 和 "Over "。然后他们将 "Additional Cost" 属性附加到新的 "Arts & Crafts" class 并分配值 "Over ".

您似乎希望在插入实体时为table动态定义和添加属性,请参考this sample

此外,您可以将这三个可能的属性值("No Additional Cost"、"Under "和"Over ")存储在一个列表中,并将列表序列化为一个JSON字符串并将其存储为实体的属性值。

List<string> values = new List<string>() { "No Additional Cost", "Under ", "Over " };

var jsonSerialiser = new JavaScriptSerializer();
string jsonval = jsonSerialiser.Serialize(values);

您可以使用 Storage SDK 中的 Merge 方法向现有实体添加其他属性,在这种情况下,"Additional Cost" 属性将附加到 "Arts & Crafts" 实体。

在客户端,您可以使用 DynamicTableEntity 作为最灵活的选项,它是一个 key/value 带有分区键和行键的字典。