ODataService 类型提供程序 (F#)
提供类型访问一开放式数据协议(odata)服务。OData是数据传输的其他协议transitional Internet。许多数据提供商通过发布 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:布尔型 |
需要与服务的直接连接可用在设计/编译时,并刷新本地服务文件。默认值为 true。当 ForceUpdate 为false时,提供程序响应在 LocalSchemaFile的更改。 |
? ResolutionFolder:字符串 |
要使用的文件夹解析相对文件路径在编译时。默认值为包含项目或脚本的文件夹。 |
? DataServiceCollection:布尔型 |
从生成 DataServiceCollection<T>派生的集合。默认值为 false。 |
备注
有关演示如何使用ODataService类型提供程序,请参见 演练:使用类型提供程序访问 OData 服务 (F#)的演练。
有关OData (打开数据协议)
OData协议提供到数据源的只读的还是可读/写访问Internet。基础数据可以在XML基于和称为原子两种格式之一,使用JavaScript对象表示法的一个和一个(json)序列化格式。OData协议由Microsoft定义并且已释放,Microsoft打开规范承诺(OSP)下的开放式标准。
您无需了解OData协议如何通过定义和实现访问数据OData web服务。但是,下面简要说明可帮助您概念上了解发生。OData协议基于委托调用其他状态()的原则,这意味着客户端请求是相互独立;会话状态或数据在客户端请求之间的服务器没有存储。相反,所有必需的状态从客户端调用到服务器与每个客户端请求。对于OData,客户端请求包括创建,读取,更新,并删除(crud)操作。从客户端的各个请求的HTTP方法,包括访问,放置,文章、合并和删除目录,指定操作的详细信息请求。服务器响应HTTP上的这些请求。
OData数据包括项的集合的源。对数据库,源可能表示表,然后项为各个记录在该表中。OData web服务还可以包含列出可用的源,服务操作是功能在描述有关服务的所有相关信息。该服务的服务文档,因此,元数据文档所有可用的资源使OData服务元数据文档中描述
OData类型提供程序
OData类型提供程序由数据的机制使该数据发布到OData服务可供F#开发人员作为确定的一组类型。也就是说,当您使用OData类型提供程序时,类型能够为该服务提供的每个源。例如,因此,如果OData源是指从关系数据库的表,该类型提供程序使一个类型可用于每个表。该表的列是类型的属性。每个源的项可作为该类型的实例。
构造查询
通过使用查询表达式,在OData服务的查询可以创建。使用F#代码中,查询表达式可以构造查询结果,这种表达式允许您指定序列的顺序。选择的关键字模拟角色和yield关键字相同。此外,查询运算符可以使用自定义查询,采用象在LINQ中,与其他.NET语言,或者在SQL查询字符串的方法相同。
可以使用查询运算符的一个子集OData查询的。这是由于在OData协议支持的查询类型的限制。支持的查询运算符包括投影(select),排序(orderBy,thenBy),筛选(where,筛选在字符串和日期之前)和分页(skip,take)。有关这些查询运算符和其他的更多信息,请参见 查询表达式 (F#)。此外,还可以使用OData特定操作 AddQueryOption 和 展开。
生成的类型
下表显示窗体的实例化生成的类型:
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 |
包含完整的上下文类型的每个属性的属性,返回 DataServiceQuery<TElement>。 凭据属性获取或设置用于的凭据查询OData服务在运行时。 DataContext属性获取完全的数据上下文,类型 DataContext。这是一种类型生成的 ServiceTypeName 类型的基类型提供程序。 |
平台
Windows 8,Windows 8,Windows 7,Windows server 2012中,Windows server 2008 R2
版本信息
F#核心库版本
支持:2.0,4.0,可移植