1

Entity Data Model从 OData Web 服务获得了一个,现在我试图了解 URL 组件 ( http://services.odata.org/OData/OData.svc/Category(1)/Products?$top=2&$orderby=name) 与 EDM 标签的关系。

据我了解,Category可以同时是EntityTypeand EntitySet,但不能是,例如,ComplexType或其他什么?

请给我澄清一下!

4

1 回答 1

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。

您是正确的,也不能将复杂类型指定为第一个组件,因为它们不是实体,因此没有标识(反过来,如果没有“关联”实体,就无法引用它们的实例)。

希望这能回答你的问题。

于 2013-08-26T10:56:32.033 回答