WCF Data Services 5.0 的新功能
這一版的 WCF Data Services 可支援下列新的 OData 3.0 版功能:
All 和 Any 運算子
OData 現在可讓您根據集合的內容篩選摘要。 您可以藉由使用新的 all 和 any 運算子,根據相關集合的屬性或多值屬性篩選 OData 摘要。.NET Framework 用戶端程式庫現在支援在 Language Integrated Query (LINQ) 查詢中使用 All<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) 和 Any<TSource>(IEnumerable<TSource>) 設定運算子。 如需詳細資訊,請參閱 LINQ 考量 (WCF Data Services)。
集合屬性 *
OData 現在可讓您在資料服務的資料模型中,定義類型的集合屬性。 這些集合屬性包含基本或複雜類型的未排序集合。具名的資源資料流
OData 現在可讓您定義給定實體的具名資源資料流。 這樣會提供您將多個二進位資料流與特定實體產生關聯的能力。 如需詳細資訊,請參閱資料流處理提供者 (WCF Data Services)。.NET Framework 用戶端程式庫現在可讓您存取具名資源資料流。 如需詳細資訊,請參閱使用二進位資料 (WCF Data Services)。
新的資料類型
OData 會定義下列新的資料類型,這些類型是由 WCF Data Services 所支援:地理空間類型*
OData 現在支援地理空間資料類型做為一組新的基本類型。 如需詳細資訊,請參閱空間程式庫。
DateTimeOffset
TimeSpan
PATCH 要求
新的 PATCH 方法已加入至 HTTP 標準。 OData 現在支援這個新的 HTTP 方法。 WCF Data Services 會以處理 MERGE 要求的相同方式來處理 PATCH 要求。.NET Framework 用戶端程式庫現在可讓您要求使用 PATCH 要求將更新傳送至資料服務。 如需詳細資訊,請參閱管理資料服務內容 (WCF Data Services)。
Prefer 標頭支援
OData 現在支援用戶端要求是否傳回裝載來回應 POST、PUT、MERGE 或 PATCH 要求的功能。 這個用戶端偏好設定可在要求中透過 Prefer 標頭的值來表示。 使用 .NET Framework 用戶端時,此偏好設定是由 DataServiceContext 管理。 如需詳細資訊,請參閱管理資料服務內容 (WCF Data Services)。服務動作
OData 可讓您定義服務動作,這是一種特殊種類的服務作業。 服務動作提供一種方式,可將行為插入其他情況下以資料為中心的模型內。 服務動作可讓您在 OData 中叫用商務邏輯,其中的邏輯必須繫結至給定的資源。 如需詳細資訊,請參閱使用 OData 動作實作伺服器端行為。詞彙註釋
OData 藉由定義詞彙來支援擴充資料服務中繼資料的功能。 WCF Data Services 可讓您使用註釋將詞彙套用至資料模型。 如需詳細資訊,請參閱 WCF Data Services 中的詞彙文章。
* Entity Framework 提供者目前並不支援新的 OData 功能。
WCF Data Services 在此版本中提供下列其他功能:
Entity Framework 提供者對 DbContext 的支援
WCF Data Services 現在可讓您使用繼承自 DbContext 的類別當做 Entity Framework 提供者資料來源,就像是使用繼承自 ObjectContext 的類別一樣。 DbContext 是 Entity Framework 4.1 中所引進的新 Code First 類別,用來取代 ObjectContext。 在過去,必須採行暫行解決方法,才能使用 DbContext 物件當做資料來源。在回應中加入關聯性連結
OData 通訊協定會在 URI 中使用 $links 運算子來定義處理實體之間關聯性的方法。 WCF Data Services 現在可讓您要求資料服務將這些連結包含在回應的 entry 元素中。 此行為是由 IncludeRelationshipLinksInResponse 組態屬性控制。 如需詳細資訊,請參閱設定資料服務 (WCF Data Services)。建構處理相關實體的 URI 時,如果這些實體出現在回應中,.NET Framework 用戶端程式庫現在會使用關聯性連結。
衍生類型的導覽屬性
在這一版中,WCF Data Services 支援在衍生類型上定義導覽屬性的能力。 在之前的版本中,只能在基底類型上定義導覽屬性。支援實體集有不同的基底 URI
OData 通訊協定允許資料服務將實體集公開為具有不同基底 URI 的集合。 在過去,.NET Framework 用戶端假設所有實體集都共用定義於 DataServiceContext 中的相同基底 URI。 您現在可以針對不是共用同一基底 URI 的實體集,定義用於內容的委派來解析 URI。 如需詳細資訊,請參閱管理資料服務內容 (WCF Data Services)。