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 命名空间