900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > [转]访问 OData 服务 (WCF Data Services)

[转]访问 OData 服务 (WCF Data Services)

时间:2019-08-20 03:28:51

相关推荐

[转]访问 OData 服务 (WCF Data Services)

本文转自:/zh-SG/library/dd728283(v=vs.103)

WCF 数据服务 支持开放式数据协议 (OData) 将数据作为包含可通过 URI 进行寻址的资源的源进行公开。 这些资源按照Entity Data Model的实体关系惯例表示。 在此模型中,实体表示作为应用程序域中数据类型的数据操作单元,如客户、订单、项目和产品。 可以通过使用具象状态传输 (REST) 的语义(尤其是标准 HTTP 谓词 GET、PUT、POST 和 DELETE)访问和更改实体数据。

对资源进行寻址

在 OData 中,您可以通过使用 URI 对数据模型公开的任何数据进行寻址。 例如,下面的 URI 返回一个作为 Customers 实体集的源,该实体集中包含 Customer 实体类型的所有实例的项:

复制

/Northwind/Northwind.svc/Customers

实体具有称为实体键的特殊属性。 实体键用于在实体集中唯一标识某个实体。 这样,您可以在实体集中对某种实体类型的特定实例进行寻址。 例如,下面的 URI 返回 Customer 实体类型的具有键值 ALFKI 的特定实例的项:

复制

/Northwind/Northwind.svc/Customers('ALFKI')

也可以对实体实例的基元属性和复杂属性进行单独寻址。 例如,下面的 URI 返回一个包含特定客户的 ContactName 属性值的 XML 元素:

复制

/Northwind/Northwind.svc/Customers('ALFKI')/ContactName

如果在上面的 URI 中包括 $value 终结点,则只在响应消息中返回基元属性的值。 下面的示例只返回字符串“Maria Anders”,而不返回 XML 元素:

复制

/Northwind/Northwind.svc/Customers('ALFKI')/ContactName/$value

实体之间的关系在数据模型中由关联定义。 通过这些关联,可以使用实体实例的导航属性对相关实体进行寻址。 对于多对一的关系,导航属性可返回单个相关实体;对于一对多的关系,导航属性可返回一组相关实体。 例如,下面的 URI 返回一个作为与特定客户相关的所有订单集的源:

复制

/Northwind/Northwind.svc/Customers('ALFKI')/Orders

通常为双向的关系由一对导航属性表示。 作为对前一示例中所示的关系的反转,下面的 URI 返回对特定 Order 实体所属的 Customer 实体的引用:

复制

/Northwind/Northwind.svc/Orders(10643)/Customer

通过 OData,还可以基于查询表达式的结果进行资源寻址。 这样,可以基于计算的表达式对资源集进行筛选。 例如,下面的 URI 对资源进行筛选以仅返回指定客户自 1997 年 9 月 22 日起已发货的订单:

复制

/Northwind/Northwind.svc/Customers('ALFKI')/Orders?$filter=ShippedDate gt datetime'1997-09-22T00:00:00'

有关更多信息,请参见 OData:URI 约定(可能为英文网页)。

系统查询选项

OData 定义了一组系统查询选项,您可以使用这些选项对资源执行传统的查询操作,如筛选、排序和分页。 例如,下面的 URI 返回邮政编码尾号不是 100 的所有 Order 实体集和相关的 Order_Detail 实体:

复制

/Northwind/Northwind.svc/Orders?$filter=not endswith(ShipPostalCode,'100')&$expand=Order_Details&$orderby=ShipCity

返回源中的各项还按订单的 ShipCity 属性值进行排序。

WCF 数据服务支持下列 OData 系统查询选项:

对关系进行寻址

除了对实体集和实体实例进行寻址之外,通过 OData 还可对表示实体间关系的关联进行寻址。 若要创建或更改两个实体实例(例如与 Northwind 示例数据库中指定订单相关的发货方)之间的关系,必须使用此功能。 OData 支持 $link 运算符,专用于对实体间的关联进行寻址。 例如,在 HTTP PUT 请求消息中指定下面的 URI 可将指定订单的发货方更改为新发货方。

复制

/Northwind/Northwind.svc/Orders(10643)/$links/Shipper

有关更多信息,请参见 OData:对各项之间的链接进行寻址(可能为英文网页)。

使用返回的源

使用 OData 资源的 URI 可以对该服务公开的实体数据进行寻址。 在 Web 浏览器的地址字段中输入 URI 时,将以 OData 源表示形式返回请求的资源。 有关更多信息,请参见 WCF 数据服务快速入门。 尽管可以使用 Web 浏览器测试某个数据服务资源能否返回预期的数据,但是生产数据服务(这些服务也可创建、更新和删除数据)通常由应用程序代码或网页中的脚本编写语言访问。 有关更多信息,请参见在客户端应用程序中使用 OData 服务 (WCF Data Services)。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。