Orion Context Broker实体可以有两个名称相同但类型不同的属性吗?
如果是,是否由猎户座控制?创建这样的实体时是否返回错误?
如果不是,当便捷操作试图获取2个属性之一的值时会发生什么(AFAIK,在操作中未传递属性类型)。
答案 0 :(得分:0)
从Orion 0.17.0开始,类型不再用于标识属性。因此,属性通过名称加(可选)metadata ID来标识。在本答复的其余部分,我将假设版本> = 0.17.0。
在处理创建实体的操作或在现有实体上追加属性时,Orion不会控制违反该规则的行为。在这些情况下,只有一个具有相同标识的属性实例存储在DB中,其他实例将被忽略。根本不建议客户端进行此类操作(将来,Orion可能会检查该情况并向客户端返回错误。)
考虑上面的段落并且关于当便捷操作试图获取2个属性之一的值时(AFAIK,在操作中未传递属性类型)会发生什么?请注意情况不可能发生。我的意思是,在Orion DB中永远不会存储两个具有相同标识的属性。
关于元数据ID的一些额外评论:我不建议使用元数据ID,因为名称中可以包含任何潜在的ID,您将使客户端更加简单,例如:如果您使用name=temperature
或任何其他命名空间技术,则不需要id=outside
和name=temperature::outside
属性。