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