WCF Data Services 5.0 中的新增功能

此版本 WCF 数据服务 完全支持以下新的 OData 3.0 版功能:

  • All 和 Any 运算符
    OData 现支持基于集合内容来筛选源。 通过使用新的 all 和 any 运算符,可以基于相关集合的属性或多值属性来筛选 OData 源。

    .NET Framework 客户端库现在支持在语言集成查询 (LINQ) 查询中使用 All<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>)Any<TSource>(IEnumerable<TSource>) 集合运算符。 有关更多信息,请参见 LINQ 注意事项(WCF 数据服务)

  • 集合属性 *
    OData 现在支持为数据服务的数据模型中的类型定义集合属性。 这些集合属性包含基元或复杂类型的未排序集合。

  • 命名资源流
    OData 现在支持定义给定实体的命名资源流。 这样您就能够为给定实体关联多个二进制数据流。 有关更多信息,请参见流提供程序(WCF 数据服务)

    .NET Framework 客户端库现在支持访问命名资源流。 有关更多信息,请参见使用二进制数据(WCF 数据服务)

  • 新数据类型
    OData 定义了以下受 WCF 数据服务 支持的新数据类型:

    • 地理空间类型*

      OData 现在支持地理空间数据类型作为新的基元集。 有关更多信息,请参见空间库

    • DateTimeOffset

    • TimeSpan

  • PATCH 请求
    已将一个新的 PATCH 方法添加到 HTTP 标准之中。 OData 现在支持此新的 HTTP 方法。 WCF 数据服务 以处理 MERGE 请求的相同方式来处理 PATCH 请求。

    .NET Framework 客户端库现在支持使用 PATCH 请求将更新发送到数据服务。 有关更多信息,请参见管理数据服务上下文(WCF 数据服务)

  • 首选标头支持
    OData 现在支持客户端请求是否返回负载以响应 POST、PUT、MERGE 或 PATCH 请求的能力。 此客户端首选项在请求中通过首选标头的值指定。 在使用 .NET Framework 客户端时,此首选项由 DataServiceContext 管理。 有关更多信息,请参见管理数据服务上下文(WCF 数据服务)

  • 服务动作
    通过 OData,可以定义服务动作,服务动作是一种特殊服务操作。 通过服务动作可将行为注入到本来以数据为中心的模型中。 通过服务动作可调用 OData 中的业务逻辑,该逻辑必须在这里绑定到某个给定资源。 有关更多信息,请参见使用 OData 动作实现服务器端行为

  • 词汇表注释
    OData 支持通过定义词汇表来扩展数据服务元数据的能力。 通过 WCF 数据服务,可通过使用注释将词汇表应用于数据模型。 有关更多信息,请参见文章 WCF Data Services 中的词汇表

* 实体框架提供程序目前不支持的新 OData 功能。

此版本 WCF 数据服务 提供以下附加功能:

  • DbContext 的实体框架提供程序支持
    WCF 数据服务 现在支持使用从 DbContext 继承的类作为实体框架提供程序数据源,就像使用从 ObjectContext 继承的类一样。 DbContext 是在 Entity Framework 4.1 中引入的一个新 Code First 类,它取代 ObjectContext。 以前,需要通过某种变通方法才能将 DbContext 对象用作数据源。

  • 在响应中包括关系链接
    OData 协议通过在 URI 中使用 $links 运算符来定义对实体间的关系进行寻址的方法。 WCF 数据服务 现在支持请求数据服务在响应中的项元素中包括这些链接。 此行为由 IncludeRelationshipLinksInResponse 配置属性控制。 有关更多信息,请参见配置数据服务(WCF 数据服务)

    如果响应中存在关联实体,.NET Framework 客户端库在构建对相关实体进行寻址的 URI 时,现在会使用关系链接。

  • 派生类型的导航属性
    此版本 WCF 数据服务 支持为派生类型定义导航属性。 在早期版本中只能为基类型定义导航属性。

  • 支持具有不同基 URI 的实体集
    OData 协议允许数据服务以具有不同基 URI 的集合的形式公开实体集。 以前,.NET Framework 客户端假定所有实体集共享 DataServiceContext 中定义的相同基 URI。 现在,可以定义一个委托,上下文使用该委托解析不具有相同基 URI 的实体集的 URI。 有关更多信息,请参见管理数据服务上下文(WCF 数据服务)

请参阅

概念

数据服务版本管理(WCF 数据服务)

WCF 数据服务概述

其他资源

WCF 数据服务入门