DataServiceContext 类

DataServiceContext 表示数据服务的运行时上下文。

继承层次结构

System.Object
  System.Data.Services.Client.DataServiceContext

命名空间:  System.Data.Services.Client
程序集:  Microsoft.Data.Services.Client(在 Microsoft.Data.Services.Client.dll 中)

语法

声明
Public Class DataServiceContext
用法
Dim instance As DataServiceContext
public class DataServiceContext
public ref class DataServiceContext
type DataServiceContext =  class end
public class DataServiceContext

DataServiceContext 类型公开以下成员。

构造函数

  名称 说明
公共方法 DataServiceContext() 初始化 DataServiceContext 类的新实例。
公共方法 DataServiceContext(Uri) 使用指定的 serviceRoot 初始化 DataServiceContext 类的新实例。
公共方法 DataServiceContext(Uri, DataServiceProtocolVersion) 使用指定的 serviceRoot 并针对特定的 maxProtocolVersion 初始化 DataServiceContext 类的新实例。

页首

属性

  名称 说明
公共属性 AddAndUpdateResponsePreference 获取或设置是否允许客户端请求数据服务在更改请求的响应消息中返回实体数据。
公共属性 ApplyingChanges 获取用于指示 DataServiceContext 是否当前正在将更改应用于所跟踪对象的值。
公共属性 BaseUri 获取标识目标数据服务的根的绝对 URI。
公共属性 Credentials 获取或设置每个查询(使用 DataServiceContext 对象创建)所使用的身份验证信息。
公共属性 DataNamespace 获取或设置 Atom 负载数据项(而非元数据项)的 XML 命名空间。
公共属性 Entities 获取当前由 DataServiceContext 跟踪的所有资源的列表。
公共属性 HttpStack 获取用于指示访问数据服务时要使用的 HTTP 实现类型的值。只有 Silverlight 的 WCF Data Services 5.0 客户端支持。
公共属性 IgnoreMissingProperties 获取从类型读取的属性或将其设置为是否必须映射到客户端类型的属性。
公共属性 IgnoreResourceNotFoundException 获取或设置当数据服务返回 404 错误(找不到资源)时是否引发异常。
公共属性 Links 获取当前正由 DataServiceContext 对象跟踪的所有关联或链接的集合。
公共属性 MaxProtocolVersion 获取允许客户端使用的最高版本的 开放式数据协议 (OData)。
公共属性 MergeOption 获取或设置用于从数据服务中接收实体的同步选项。
公共属性 ResolveEntitySet 获取或设置委托方法,以便使用该方法在无法根据编辑链接或自身链接 URI 来确定值的情况下解析实体集 URI。
公共属性 ResolveName 获取或设置函数,以便在用户向数据服务发送实体时,重写客户端库所用的默认类型解析策略。
公共属性 ResolveType 获取或设置函数,以便在接收数据服务的实体时,重写客户端库所用的默认类型解析选项。
公共属性 SaveChangesDefaultOptions 获取或设置 SaveChanges 方法所用的 SaveChangesOptions 值。
公共属性 Timeout 获取或设置用于向数据服务发送基础 HTTP 请求的超时选项(以秒为单位)。
公共属性 TypeScheme 获取或设置 URI,以便指示服务所用的类型方案。
公共属性 UseDefaultCredentials 获取或设置是否使用默认凭据对发送到数据服务的请求进行身份验证。只有 Silverlight 的 WCF Data Services 5.0 客户端支持。
公共属性 UsePostTunneling 获取或设置一个布尔值,该值指示是否使用 POST 隧道。

页首

方法

  名称 说明
公共方法 AddLink 将指定链接添加到 DataServiceContext 正在跟踪的一组对象。
公共方法 AddObject 将指定对象添加到 DataServiceContext 正在跟踪的一组对象中。
公共方法 AddRelatedObject 将相关对象添加到上下文,然后创建相关链接,以便定义单个请求中两个对象间的关系。
公共方法 AttachLink 通知 DataServiceContext 开始跟踪指定链接,该链接定义了实体对象之间的关系。
公共方法 AttachTo(String, Object) 通知 DataServiceContext 开始跟踪指定资源,并在指定资源集中提供该资源的位置。
公共方法 AttachTo(String, Object, String) 通知 DataServiceContext 开始跟踪指定资源,并在指定资源集中提供该资源的位置。
公共方法 BeginExecute(Uri, AsyncCallback, Object, String, array<OperationParameter[]) 通过将请求异步发送到数据服务来执行特定 URI。
公共方法 BeginExecute<TElement>(Uri, AsyncCallback, Object) 异步发送请求,因此在等待服务返回的结果时,此调用不会阻止处理。
公共方法 BeginExecute<T>(DataServiceQueryContinuation<T>, AsyncCallback, Object) 通过将请求异步发送到数据服务,在分页查询结果中检索下一页数据。
公共方法 BeginExecute<TElement>(Uri, AsyncCallback, Object, String, Boolean, array<OperationParameter[]) 通过将请求异步发送到数据服务来执行特定 URI。
公共方法 BeginExecuteBatch 将一组查询以批处理方式异步提交到数据服务。
公共方法 BeginGetReadStream(Object, DataServiceRequestArgs, AsyncCallback, Object) 通过使用指定消息头,异步获取属于指定实体的二进制数据流。
公共方法 BeginGetReadStream(Object, String, DataServiceRequestArgs, AsyncCallback, Object) 通过使用指定消息头,异步获取属于指定实体的命名二进制数据流。
公共方法 BeginLoadProperty(Object, String, AsyncCallback, Object) 从数据服务异步加载指定属性的值。
公共方法 BeginLoadProperty(Object, String, DataServiceQueryContinuation, AsyncCallback, Object) 通过使用所提供的查询延续对象,从数据服务异步加载下一页相关实体。
公共方法 BeginLoadProperty(Object, String, Uri, AsyncCallback, Object) 通过使用所提供的下一链接 URI,从数据服务异步加载相关实体页。
公共方法 BeginSaveChanges(AsyncCallback, Object) 以异步方式向数据服务提交自上次保存更改以来,由 DataServiceContext 收集的挂起更改。
公共方法 BeginSaveChanges(SaveChangesOptions, AsyncCallback, Object) 以异步方式向数据服务提交自上次保存更改以来,由 DataServiceContext 收集的挂起更改。
公共方法 CancelRequest 尝试取消与所提供的 IAsyncResult 对象关联的操作。
公共方法 CreateQuery<T> 针对指定泛型类型的数据创建数据服务查询。
公共方法 DeleteLink 更改要在链接列表中删除的链接的状态,该链接列表由 DataServiceContext 进行跟踪。
公共方法 DeleteObject 更改要在 DataServiceContext 中删除的指定对象的状态。
公共方法 Detach 从 DataServiceContext 所跟踪的实体列表中移除该实体。
公共方法 DetachLink 从 DataServiceContext 所跟踪的链接列表中移除指定链接。
公共方法 EndExecute(IAsyncResult) 调用后可完成 BeginExecute
公共方法 EndExecute<TElement>(IAsyncResult) 调用后可完成 BeginExecute
公共方法 EndExecuteBatch 调用后可完成 BeginExecuteBatch
公共方法 EndGetReadStream 调用后可完成检索二进制数据流的异步操作。
公共方法 EndLoadProperty 调用后可完成 BeginLoadProperty 操作。
公共方法 EndSaveChanges 调用后可完成 BeginSaveChanges 操作。
公共方法 Equals (从 Object 继承。)
公共方法 Execute(Uri, String, array<OperationParameter[]) 使用指定的 HTTP 方法,将请求发送到数据服务来执行特定 URI。用于 Silverlight 的 WCF Data Services 5.0 客户端不支持。
公共方法 Execute<TElement>(Uri) 通过将请求发送到数据服务来执行特定 URI。用于 Silverlight 的 WCF Data Services 5.0 客户端不支持。
公共方法 Execute<T>(DataServiceQueryContinuation<T>) 通过将请求发送到数据服务,在分页查询结果中检索下一页数据。用于 Silverlight 的 WCF Data Services 5.0 客户端不支持。
公共方法 Execute<TElement>(Uri, String, Boolean, array<OperationParameter[]) 使用指定的 HTTP 方法,将请求发送到数据服务来执行特定 URI。用于 Silverlight 的 WCF Data Services 5.0 客户端不支持。
公共方法 ExecuteBatch 将一组查询以批处理方式同步提交到数据服务。用于 Silverlight 的 WCF Data Services 5.0 客户端不支持。
受保护方法 Finalize (从 Object 继承。)
公共方法 GetEntityDescriptor 获取所提供实体对象的 EntityDescriptor
公共方法 GetHashCode (从 Object 继承。)
公共方法 GetLinkDescriptor 获取特定链接的 LinkDescriptor,以便定义两个实体之间的关系。
公共方法 GetMetadataUri 获取 .edmx 元数据位置的 URI。
公共方法 GetReadStream(Object) 获取属于指定实体的二进制数据流。用于 Silverlight 的 WCF Data Services 5.0 客户端不支持。
公共方法 GetReadStream(Object, DataServiceRequestArgs) 通过使用指定消息头来获取指定实体的二进制数据流。用于 Silverlight 的 WCF Data Services 5.0 客户端不支持。
公共方法 GetReadStream(Object, String) 通过使用指定的 Content-Type 消息头,获取属于指定实体的二进制数据流。用于 Silverlight 的 WCF Data Services 5.0 客户端不支持。
公共方法 GetReadStream(Object, String, DataServiceRequestArgs) 通过使用指定的 Content-Type 消息头,获取属于指定实体的命名二进制数据流。用于 Silverlight 的 WCF Data Services 5.0 客户端不支持。
公共方法 GetReadStreamUri(Object) 获取用于返回二进制数据流的 URI。
公共方法 GetReadStreamUri(Object, String) 获取用于返回命名二进制数据流的 URI。
公共方法 GetType (从 Object 继承。)
公共方法 LoadProperty(Object, String) 从数据服务加载指定属性的延迟内容。用于 Silverlight 的 WCF Data Services 5.0 客户端不支持。
公共方法 LoadProperty(Object, String, DataServiceQueryContinuation) 通过使用所提供的查询延续对象,从数据服务加载下一页相关实体。用于 Silverlight 的 WCF Data Services 5.0 客户端不支持。
公共方法 LoadProperty(Object, String, Uri) 通过使用所提供的下一链接 URI 来加载相关实体页。用于 Silverlight 的 WCF Data Services 5.0 客户端不支持。
公共方法 LoadProperty<T>(Object, String, DataServiceQueryContinuation<T>) 通过使用所提供的通用查询延续对象,从数据服务加载下一页相关实体。用于 Silverlight 的 WCF Data Services 5.0 客户端不支持。
受保护方法 MemberwiseClone (从 Object 继承。)
公共方法 SaveChanges() 将 DataServiceContext 所跟踪的更改保存到存储。用于 Silverlight 的 WCF Data Services 5.0 客户端不支持。
公共方法 SaveChanges(SaveChangesOptions) 将 DataServiceContext 所跟踪的更改保存到存储。用于 Silverlight 的 WCF Data Services 5.0 客户端不支持。
公共方法 SetLink 通知 DataServiceContext,指定的对象之间存在新链接,且该链接由 sourceProperty 参数指定的属性表示。
公共方法 SetSaveStream(Object, Stream, Boolean, DataServiceRequestArgs) 使用请求消息中的指定标头,为指定实体设置二进制数据流。
公共方法 SetSaveStream(Object, Stream, Boolean, String, String) 使用请求消息中的指定 Content-Type 和 Slug 标头,设置属于指定实体的二进制数据流。
公共方法 SetSaveStream(Object, String, Stream, Boolean, DataServiceRequestArgs) 通过使用请求消息中的指定标头,设置属于指定实体的命名二进制数据流。
公共方法 SetSaveStream(Object, String, Stream, Boolean, String) 为指定实体设置二进制数据流。
公共方法 ToString (从 Object 继承。)
公共方法 TryGetEntity<TEntity> 通过引用实体的 URI,测试由 DataServiceContext 跟踪的实体的检索。
公共方法 TryGetUri 检索与指定实体关联的规范 URI(如果可用)。
公共方法 UpdateObject 将 DataServiceContext 中的指定对象的状态更改为 Modified

页首

事件

  名称 说明
公共事件 ReadingEntity 在实体数据已完全读入实体对象之后发生。
公共事件 SendingRequest 在创建新 HttpWebRequest 之后发生。
公共事件 SendingRequest2 在创建新 HttpWebRequest 之后发生。
公共事件 WritingEntity 在实体已完全序列化为请求消息中的 XML 之后发生。

页首

注释

WCF 数据服务 是无状态的,但 DataServiceContext 不是。 各个交互之间将保持客户端的状态,以支持更新管理之类的功能。 这种类以及表示特定 HTTP 请求(针对数据服务)的 DataServiceQuery 类是客户端库中的两个主要类。

示例

下面的示例演示如何使用“添加服务引用”工具所生成的 DataServiceContext 来隐式执行针对 Northwind 数据服务返回所有客户的查询。 该上下文自动确定请求的 Customers 实体集的 URI。 在发生枚举时隐式执行该查询。 Northwind 数据服务是在完成 WCF 数据服务?快速入门时创建的。

' Create the DataServiceContext using the service URI.
Dim context = New NorthwindEntities(svcUri)

' Define a new query for Customers.
Dim query As DataServiceQuery(Of Customer) = context.Customers

Try
    ' Enumerate over the query result, which is executed implicitly.
    For Each customer As Customer In query
        Console.WriteLine("Customer Name: {0}", customer.CompanyName)
    Next
Catch ex As DataServiceQueryException
    Throw New ApplicationException( _
            "An error occurred during query execution.", ex)
End Try
// Create the DataServiceContext using the service URI.
NorthwindEntities context = new NorthwindEntities(svcUri);

// Define a new query for Customers.
DataServiceQuery<Customer> query = context.Customers;

try
{
    // Enumerate over the query result, which is executed implicitly.
    foreach (Customer customer in query)
    {
        Console.WriteLine("Customer Name: {0}", customer.CompanyName);
    }
}
catch (DataServiceQueryException ex)
{
    throw new ApplicationException(
        "An error occurred during query execution.", ex);
}

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。不保证所有实例成员都是线程安全的。

请参阅

参考

System.Data.Services.Client 命名空间

其他资源

数据客户端 (WCF Data Services)