资源路径组件与EDM标签之间的OData关系

时间:2013-08-21 07:23:06

标签: odata

我从OData网络服务获得Entity Data Model,现在我正在努力了解如何 网址组件(http://services.odata.org/OData/OData.svc/Category(1)/Products?$top=2&$orderby=name)与EDM标记相关。

据我了解,Category可以是EntityTypeEntitySet,但不是,例如ComplexType或其他?

请向我澄清一下!

1 个答案:

答案 0 :(得分:1)

resourcePath = "/"
[ entityContainerName "." ] entitySetName [collectionNavigation] /
( entityColServiceOpCall / entityColFunctionCall ) [ collectionNavigation ] /
( entityServiceOpCall / entityFunctionCall ) [ singleNavigation ] /
( complexColServiceOpCall / complexColFunctionCall ) [ boundOperation ] /
( complexServiceOpCall / complexFunctionCall ) [ boundOperation / complexPropertyPath ] /
( primitiveColServiceOpCall / primitiveColFunctionCall ) [ boundOperation ] /
( primitiveServiceOpCall / primitiveFunctionCall ) [ boundOperation / value ] /
actionCall

http://www.odata.org/documentation/odata-v3-documentation/abnf/

如果我们正确阅读(让我们希望),第一个组件必须始终是实体集的名称。 (限定的)实体类型可以明确指定为collectionNavigation的一部分,主要用于导航继承树。

我可以验证这一点;在指定实体类型名称(比如“Person”)而不是实体集名称(比如“People”)时,WCF实现返回正确的404.

你是正确的,复杂的类型也不能被指定为第一个组件,因为它们不是实体,因此没有标识(反过来又不能在没有“关联”的情况下引用它们的实例)实体)。

希望这能回答你的问题。