关于javascript:OData-metadata-定义中entity-type-key-的作用是什么

39次阅读

共计 1030 个字符,预计需要花费 3 分钟才能阅读完成。

什么是 OData entity type 的 key?

最权威的定义,来自 OData 官网:

OData EDM 模型的外围概念是实体 entities 和关联即 associations. Entities 是 OData 模型形容对象的实体类型(例如,客户、员工等)的实例,它们是结构化记录,由 name 和强类型属性组成,并带有一个 key.

Complex Types(简单类型)是结构化类型,也由属性列表组成,但没有 key,因而只能作为蕴含实体的属性或作为长期值存在, 而无奈独自存在。

OData Complex Types 同 ABAP DDIC 里的 Structure 十分相似。

Entity key 由单个或者多个 OData entities 属性组成(例如,CustomerId 或 OrderId),用于 惟一 标识实体类型实例并容许实体类型实例参加关系的基本概念。

通过具体的例子来阐明。

上面是 Northwind OData metadata url:

https://services.odata.org/v2…$metadata

从后果列表看出,有一个 EntityType,名称为 Category,Key 为 CategoryID.

要查看零碎所有的 category,先要找到 Entity Type Category 对应的 entitySet:

在 metadata 里依据关键字 entityset 搜寻,而后就能找到 Category 对应的 EntitySet 名称为 Categories.

而后把 Categories 拼接到 url 尾部,失去零碎所有的 Categories:

https://services.odata.org/v2…$format=json

总共 8 条数据:

咱们能够传入 CategoryID,依据这个 key 来查找对应的 Category 数据:

https://services.odata.org/v2…(3)?$format=json

依据 key 拜访单条 entity 的语法:EntitySet 名称 +(key 值)

除了 key 之外,OData 不反对通过 entity 其余属性放到小括号里的语法来查问。

试图查找 CategoryName 为 Confections 的 Category 实例,语法错误:

对于依据非 key 属性查问的需要,应用 OData $filter 操作:

https://services.odata.org/v2…$filter=CategoryName eq ‘Confections’

更多 Jerry 的原创文章,尽在:” 汪子熙 ”:

正文完
 0