资源路径组件和EDM标记之间的OData关系

资源路径组件和EDM标记之间的OData关系,odata,Odata,我从OData web服务获得了一个实体数据模型,现在我正试图了解如何使用它 URL组件(http://services.odata.org/OData/OData.svc/Category(1) /Products?$top=2和$orderby=name)与EDM标记相关 据我所知,Category可以是EntityType和EntitySet,但不能是,例如,ComplexType或其他什么 请向我澄清一下 resourcePath = "/" [ entityContainerName

我从OData web服务获得了一个
实体数据模型
,现在我正试图了解如何使用它 URL组件(
http://services.odata.org/OData/OData.svc/Category(1) /Products?$top=2和$orderby=name
)与EDM标记相关

据我所知,
Category
可以是
EntityType
EntitySet
,但不能是,例如,
ComplexType
或其他什么

请向我澄清一下

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

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

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

您是正确的,复杂类型也不能被指定为第一个组件,因为它们不是实体,因此没有标识(这使得在没有“关联”实体的情况下无法引用它们的实例)

希望这能回答你的问题

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

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

您是正确的,复杂类型也不能被指定为第一个组件,因为它们不是实体,因此没有标识(这使得在没有“关联”实体的情况下无法引用它们的实例)

希望这能回答你的问题