使用 WCF Data Services 的多個版本
Open Data Protocol (OData) 可利用透過 HTTP 的標準網際網路通訊協定,讓資料來源可供遠端存取。在發行新版本的 OData 時,用戶端應用程式可能無法使用資料服務支援的相同 OData 版本。舊版用戶端應用程式可使用較新版本的 OData 來存取資料服務,或者用戶端應用程式可使用較新版本的 WCF Data Services 用戶端程式庫,而不是支援比正在存取之 OData 摘要更新版的 OData 。
WCF Data Services 會利用 OData 提供的支援來處理這種版本控制案例。還支援在用戶端所使用的 OData 版本與資料服務所使用之版本不同時,產生及使用資料模型中繼資料來建立用戶端資料服務類別。如需詳細資訊,請參閱 OData:通訊協定版本控制。
通訊協定版本
不論用戶端所要求的版本為何,資料服務都可以設定為定義服務將使用的最高 OData 通訊協定版本。您可以為資料服務所使用的 DataServiceBehavior 的 MaxProtocolVersion 屬性指定 DataServiceProtocolVersion 值來執行此動作。如需詳細資訊,請參閱設定資料服務 (WCF Data Services)。
當應用程式使用 WCF Data Services 用戶端程式庫來存取資料服務時,程式庫會根據 OData 的版本和您應用程式中所使用的特性,自動將這些標頭設定為正確的值。根據預設,WCF Data Services 會使用可支援要求之作業的最低通訊協定版本。
下表詳細說明 .NET Framework 和 Silverlight 的版本,其中包含特定版本 OData 通訊協定的 WCF Data Services 支援。
OData 通訊協定版本 | 以下版本中引進的支援… |
---|---|
第 1 版 |
|
第 2 版 |
|
中繼資料版本
根據預設,WCF Data Services 會使用 1.1 版的 CSDL 來代表資料模型。這就是以反映提供者或自訂資料服務提供者為基礎之資料模型的情況。但是,當使用 Entity Framework 來定義資料模型時,傳回的 CSDL 版本會與 Entity Framework 所使用的版本相同。CSDL 的版本取決於 Schema 項目的命名空間。如需詳細資訊,請參閱規格的詳細資訊,請參閱 [MC-CSDL]: 概念結構定義語言格式。
傳回之中繼資料的 DataServices 項目還包含 DataServiceVersion 屬性,該值與回應訊息中 DataServiceVersion 標頭的值相同。用戶端應用程式 (例如 Visual Studio 中的 [加入服務參考] 對話方塊) 會使用此資訊來產生用戶端資料服務類別,這些類別可搭配裝載資料服務之 WCF Data Services 的版本正常運作。如需詳細資訊,請參閱 OData:通訊協定版本控制。