我从OData网络服务获得Entity Data Model
,现在我正在努力了解如何
网址组件(http://services.odata.org/OData/OData.svc/Category(1)/Products?$top=2&$orderby=name
)与EDM标记相关。
据我了解,Category
可以是EntityType
和EntitySet
,但不是,例如ComplexType
或其他?
请向我澄清一下!
答案 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.
你是正确的,复杂的类型也不能被指定为第一个组件,因为它们不是实体,因此没有标识(反过来又不能在没有“关联”的情况下引用它们的实例)实体)。
希望这能回答你的问题。