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,可移植

请参见

任务

演练:使用类型提供程序访问 OData 服务 (F#)

参考

Microsoft.FSharp.Collections 命名空间 (F#)

Microsoft.FSharp.Data.TypeProviders 命名空间 (F#)