ODataService 型別提供者 (F#)
提供型別存取開放式資料通訊協定(OData)服務。OData即是的通訊協定(Protocol) Transitional網際網路。許多資料提供者會發行 OData Web 服務讓他們的資料可以公開供他人存取。OData型別提供者緊接在程式碼產生型別是根據OData來源的結構和使您能夠使用任何OData資料來源的資料,通常,而不需要額外負荷建立資料型別。
Namespace/Module Path: Microsoft.FSharp.Data.TypeProviders
Assembly: FSharp.Data.TypeProviders (在 FSharp.Data.TypeProviders.dll)
type ODataService<ServiceUri : string,
?LocalSchemaFile : string,
?ForceUpdate : bool,
?ResolutionFolder : string,
?DataServiceCollection : bool>
靜態型別參數
輸入參數。 |
描述 |
---|---|
ServiceUri:字串 |
OData服務的URI字串。 |
? LocalSchemaFile:字串 |
包含結構描述之檔案的路徑。這個檔案是由型別撰寫提供者。 |
? ForceUpdate:bool |
需求與服務的直接連接可用在設計/編譯時期,而且也會重新整理本機服務檔。預設值為 true。當 ForceUpdate 為false時,提供者會反應在 LocalSchemaFile的變更。 |
? ResolutionFolder:字串 |
資料夾會使用的已解析相對檔案路徑在編譯時期。預設值為包含專案或指令碼的資料夾。 |
? DataServiceCollection:bool |
會從 DataServiceCollection<T>衍生集合。預設值為 false。 |
備註
如需示範如何使用ODataService型別提供者,請參閱 逐步解說:使用型別提供者存取 OData 服務 (F#)的逐步解說。
如需OData (開啟資料通訊協定)
OData通訊協定提供對資料來源的唯讀或讀取/寫入存取在網際網路。基礎資料可以儲存在XML以和稱為原子這兩種格式的其中一個,使用" JavaScript物件標記法而另一個(JSON)序列化格式。OData通訊協定是由Microsoft所定義且放開,在Microsoft開放式規格承諾(OSP)的下一個開放標準。
您不需要知道OData通訊協定如何定義和實作透過存取資料OData Web服務。不過,下列概要說明有助於了解概念上發生的事件。OData通訊協定會根據具像狀態傳輸(Representational State Transfer,REST)的原則,表示用戶端要求是相互獨立的,工作階段狀態或資料儲存在用戶端要求之間的伺服器不會儲存。相反地,所有必要的狀態從用戶端傳輸至伺服器的每一個用戶端要求。在OData情況下,用戶端要求包括建立,讀取,更新,並刪除(CRUD)作業。從用戶端個別要求是HTTP方法,包括GET, PUT, POST、合併和刪除,內容指定原因詳細資訊要求。伺服器回應的HTTP要求。
OData資料包括項目集合的摘要。對於資料庫,摘要可以表示資料表,而項目是個別資料錄在該資料表中。OData Web服務也可能包含列出可用的摘要,服務作業是函式可用說明服務的所有相關資訊的。這個服務的服務,文件,以及中繼資料提供所有可用的資源可由OData服務在中繼資料中文件中有詳細說明。
OData型別提供者
OData型別提供者是由資料的結構將資料發行至OData服務可供F#開發人員為一組型別來決定。也就是說,當您使用OData提供者型別時,型別可該服務提供的每一個摘要。例如,在中,如果OData摘要是一組從關聯式資料庫的資料表,這個型別的提供者所做的每一個資料表的型別使用。這個資料表的資料行是型別的屬性。每一個摘要的項目是以型別的執行個體。
建構查詢
使用查詢運算式,在OData服務的查詢中建立。使用F#程式碼中,查詢運算式可以讓您建構查詢結果,這種運算式可以讓您指定序列的序列。SELECT關鍵字模擬角色和yield關鍵字相同。此外,查詢運算子可以使用自訂查詢,與您在LINQ,在其他.NET語言,或在SQL查詢字串的方式相同。
您可以使用查詢運算子的子集OData查詢的。這是因為在OData通訊協定支援查詢類型的限制。支援的查詢運算子包括規劃(select),順序(orderBy, thenBy),篩選(where,篩選字串與日期)和呼叫(skip, take)。如需這些查詢運算子和其他變更的詳細資訊,請參閱 查詢運算式 (F#)。此外,您也可以使用OData特定作業 AddQueryOption 和 展開。
產生的型別
下表顯示表單的執行個體化(Instantiation)產生的型別:
type MyService = ODataService<parameters>
在下表中, ServiceTypeName 表示服務的型別名稱,和*表示命名空間所有成員的連結。
型別 |
描述 |
---|---|
MyService |
整個容器型別。 包含GetDataContext方法,傳回資料內容的一個簡單的檢視。這個方法會傳回MyService.ServiceTypes.SimpleDataContextTypes新執行個體。ServiceTypeName,初始化 ServiceUri 靜態參數或引數的值,則為,如果提供一個。 |
MyService.ServiceTypes |
包含內嵌完整型別和簡化的型別資料庫的。 |
MyService.ServiceTypes.* |
DataSvcUtil.exe產生的內嵌型別。 |
MyService.ServiceTypes.ServiceTypeName |
服務內容類型,繼承自 DataContext。 |
MyService.ServiceTypes.SimpleDataContextTypes.ServiceTypeName |
包含完整內容類型的每個屬性(Property)的屬性(Attribute),則會傳回 DataServiceQuery<TElement>。 驗證屬性取得或設定認證會用來查詢OData服務會在執行階段。 DataContext屬性取得完整的資料內容,型別 DataContext。這是這個型別所產生的 ServiceTypeName 型別的基底型別的提供者。 |
平台
Windows 8, Windows 8中, Windows 7, Windows Server 2012上, Windows Server 2008 R2
版本資訊
F# 核心程式庫版本
支援版本:2.0, 4.0,可攜式執行檔 (PE)。