2016-12-08 43 views
0

我很感激有关如何在Azure表存储中实现这一点的一些意见。我已经阅读了几次设计指南,但这种情况似乎没有被涵盖。如何为Azure表存储中的键/值属性建模?

通用用例是将0 ... n个键/值对连接到系统中的一个对象,其中所有可能的值都是预定义的。

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

添加到新学期的第一堂课是“艺术&工艺品”,管理员认为他们需要添加一个新属性以表明需要参加此课程需要额外费用。他们进入属性管理页面并添加“附加成本”作为属性,并具有三个可能的属性值:“无附加成本”,“低于20美元”和“超过20美元”。然后,他们将“附加成本”属性附加到新的“Arts &工艺品”类中,并指定“超过20美元”的值。

回答

1

在插入实体时,您似乎想要动态定义和添加属性到表中,请参阅this sample

此外,您可以在列表中存储这三个可能的属性值(“无额外成本”,“低于20美元”和“超过20美元”),并将列表序列化为JSON字符串并将其存储为实体的属性值。

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

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

您可以使用从存储SDK合并方法的附加属性添加到现有的实体,在这种情况下,“额外费用”属性将附加到“艺术&工艺品”的实体。

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

相关问题