DataServiceContext Class

The DataServiceContext represents the runtime context of the data service.

Inheritance Hierarchy

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

Namespace:  System.Data.Services.Client
Assembly:  Microsoft.Data.Services.Client (in Microsoft.Data.Services.Client.dll)

Syntax

'Declaration
Public Class DataServiceContext
'Usage
Dim instance As DataServiceContext
public class DataServiceContext
public ref class DataServiceContext
type DataServiceContext =  class end
public class DataServiceContext

The DataServiceContext type exposes the following members.

Constructors

  Name Description
Public method DataServiceContext() Initializes a new instance of the DataServiceContext class.
Public method DataServiceContext(Uri) Initializes a new instance of the DataServiceContext class with the specified serviceRoot.
Public method DataServiceContext(Uri, DataServiceProtocolVersion) Initializes a new instance of the DataServiceContext class with the specified serviceRoot and targeting the specific maxProtocolVersion.

Top

Properties

  Name Description
Public property AddAndUpdateResponsePreference Gets or sets whether the client requests that the data service return entity data in the response message to a change request.
Public property ApplyingChanges Gets a value that indicates whether the DataServiceContext is currently applying changes to tracked objects.
Public property BaseUri Gets the absolute URI identifying the root of the target data service.
Public property Credentials Gets or sets the authentication information that is used by each query created by using the DataServiceContext object.
Public property DataNamespace Obsolete. Gets or sets the XML namespace for data items, not metadata items, of an Atom payload.
Public property Entities Gets a list of all the resources currently being tracked by the DataServiceContext.
Public property HttpStack Gets a value that indicates the type of HTTP implementation to use when accessing the data service.Supported only by the WCF Data Services 5.0 client for Silverlight.
Public property IgnoreMissingProperties Gets or sets whether the properties read from the type must be mapped to properties on the client-side type.
Public property IgnoreResourceNotFoundException Gets or sets whether an exception is raised when a 404 error (resource not found) is returned by the data service.
Public property Links Gets the collection of all associations or links currently being tracked by the DataServiceContext object.
Public property MaxProtocolVersion Gets the maximum version of the Open Data Protocol (OData) that the client is allowed to use.
Public property MergeOption Gets or sets the synchronization option for receiving entities from a data service.
Public property ResolveEntitySet Gets or sets the delegate method that is used to resolve the entity set URI when the value cannot be determined from an edit-link or self-link URI.
Public property ResolveName Gets or sets a function to override the default type resolution strategy used by the client library when you send entities to a data service.
Public property ResolveType Gets or sets a function that is used to override the default type resolution option that is used by the client library when receiving entities from a data service.
Public property SaveChangesDefaultOptions Gets or sets the SaveChangesOptions values that are used by the SaveChanges method.
Public property Timeout Gets or sets the time-out option (in seconds) that is used for the underlying HTTP request to the data service.
Public property TypeScheme Obsolete. Gets or sets the URI used to indicate what type scheme is used by the service.
Public property UseDefaultCredentials Gets or sets whether default credentials are used to authenticate requests to the data service. Supported only by the WCF Data Services 5.0 client for Silverlight.
Public property UsePostTunneling Gets or sets a Boolean value that indicates whether to use post tunneling.

Top

Methods

  Name Description
Public method AddLink Adds the specified link to the set of objects the DataServiceContext is tracking.
Public method AddObject Adds the specified object to the set of objects that the DataServiceContext is tracking.
Public method AddRelatedObject Adds a related object to the context and creates the link that defines the relationship between the two objects in a single request.
Public method AttachLink Notifies the DataServiceContext to start tracking the specified link that defines a relationship between entity objects.
Public method AttachTo(String, Object) Notifies the DataServiceContext to start tracking the specified resource and supplies the location of the resource within the specified resource set.
Public method AttachTo(String, Object, String) Notifies the DataServiceContext to start tracking the specified resource and supplies the location of the resource in the specified resource set.
Public method BeginExecute(Uri, AsyncCallback, Object, String, array<OperationParameter[]) Asynchronously sends a request to the data service to execute a specific URI.
Public method BeginExecute<TElement>(Uri, AsyncCallback, Object) Asynchronously sends the request so that this call does not block processing while waiting for the results from the service.
Public method BeginExecute<T>(DataServiceQueryContinuation<T>, AsyncCallback, Object) Asynchronously sends a request to the data service to retrieve the next page of data in a paged query result.
Public method BeginExecute<TElement>(Uri, AsyncCallback, Object, String, Boolean, array<OperationParameter[]) Asynchronously sends a request to the data service to execute a specific URI.
Public method BeginExecuteBatch Asynchronously submits a group of queries as a batch to the data service.
Public method BeginGetReadStream(Object, DataServiceRequestArgs, AsyncCallback, Object) Asynchronously gets the binary data stream that belongs to the specified entity, by using the specified message headers.
Public method BeginGetReadStream(Object, String, DataServiceRequestArgs, AsyncCallback, Object) Asynchronously gets a named binary data stream that belongs to the specified entity, by using the specified message headers.
Public method BeginLoadProperty(Object, String, AsyncCallback, Object) Asynchronously loads the value of the specified property from the data service.
Public method BeginLoadProperty(Object, String, DataServiceQueryContinuation, AsyncCallback, Object) Asynchronously loads the next page of related entities from the data service by using the supplied query continuation object.
Public method BeginLoadProperty(Object, String, Uri, AsyncCallback, Object) Asynchronously loads a page of related entities from the data service by using the supplied next link URI.
Public method BeginSaveChanges(AsyncCallback, Object) Asynchronously submits the pending changes to the data service collected by the DataServiceContext since the last time changes were saved.
Public method BeginSaveChanges(SaveChangesOptions, AsyncCallback, Object) Asynchronously submits the pending changes to the data service collected by the DataServiceContext since the last time changes were saved.
Public method CancelRequest Attempts to cancel the operation that is associated with the supplied IAsyncResult object.
Public method CreateQuery<T> Creates a data service query for data of a specified generic type.
Public method DeleteLink Changes the state of the link to deleted in the list of links being tracked by the DataServiceContext.
Public method DeleteObject Changes the state of the specified object to be deleted in the DataServiceContext.
Public method Detach Removes the entity from the list of entities that the DataServiceContext is tracking.
Public method DetachLink Removes the specified link from the list of links being tracked by the DataServiceContext.
Public method EndExecute(IAsyncResult) Called to complete the BeginExecute.
Public method EndExecute<TElement>(IAsyncResult) Called to complete the BeginExecute.
Public method EndExecuteBatch Called to complete the BeginExecuteBatch.
Public method EndGetReadStream Called to complete the asynchronous operation of retrieving a binary data stream.
Public method EndLoadProperty Called to complete the BeginLoadProperty operation.
Public method EndSaveChanges Called to complete the BeginSaveChanges operation.
Public method Equals (Inherited from Object.)
Public method Execute(Uri, String, array<OperationParameter[]) Sends a request to the data service to execute a specific URI by using a specific HTTP method.Not supported by the WCF Data Services 5.0 client for Silverlight.
Public method Execute<TElement>(Uri) Sends a request to the data service to execute a specific URI.Not supported by the WCF Data Services 5.0 client for Silverlight.
Public method Execute<T>(DataServiceQueryContinuation<T>) Sends a request to the data service to retrieve the next page of data in a paged query result.Not supported by the WCF Data Services 5.0 client for Silverlight.
Public method Execute<TElement>(Uri, String, Boolean, array<OperationParameter[]) Sends a request to the data service to execute a specific URI by using a specific HTTP method.Not supported by the WCF Data Services 5.0 client for Silverlight.
Public method ExecuteBatch Synchronously submits a group of queries as a batch to the data service.Not supported by the WCF Data Services 5.0 client for Silverlight.
Protected method Finalize (Inherited from Object.)
Public method GetEntityDescriptor Gets the EntityDescriptor for the supplied entity object.
Public method GetHashCode (Inherited from Object.)
Public method GetLinkDescriptor Gets the LinkDescriptor for a specific link that defines the relationship between two entities.
Public method GetMetadataUri Gets a URI of the location of .edmx metadata.
Public method GetReadStream(Object) Gets the binary data stream that belongs to the specified entity.Not supported by the WCF Data Services 5.0 client for Silverlight.
Public method GetReadStream(Object, DataServiceRequestArgs) Gets binary data stream for the specified entity by using the specified message headers.Not supported by the WCF Data Services 5.0 client for Silverlight.
Public method GetReadStream(Object, String) Gets the binary data stream that belongs to the specified entity, by using the specified Content-Type message header.Not supported by the WCF Data Services 5.0 client for Silverlight.
Public method GetReadStream(Object, String, DataServiceRequestArgs) Gets a named binary data stream that belongs to the specified entity, by using the specified Content-Type message header.Not supported by the WCF Data Services 5.0 client for Silverlight.
Public method GetReadStreamUri(Object) Gets the URI that is used to return a binary data stream.
Public method GetReadStreamUri(Object, String) Gets the URI that is used to return a named binary data stream.
Public method GetType (Inherited from Object.)
Public method LoadProperty(Object, String) Loads deferred content for a specified property from the data service.Not supported by the WCF Data Services 5.0 client for Silverlight.
Public method LoadProperty(Object, String, DataServiceQueryContinuation) Loads the next page of related entities from the data service by using the supplied query continuation object.Not supported by the WCF Data Services 5.0 client for Silverlight.
Public method LoadProperty(Object, String, Uri) Loads a page of related entities by using the supplied next link URI.Not supported by the WCF Data Services 5.0 client for Silverlight.
Public method LoadProperty<T>(Object, String, DataServiceQueryContinuation<T>) Loads the next page of related entities from the data service by using the supplied generic query continuation object.Not supported by the WCF Data Services 5.0 client for Silverlight.
Protected method MemberwiseClone (Inherited from Object.)
Public method SaveChanges() Saves the changes that the DataServiceContext is tracking to storage.Not supported by the WCF Data Services 5.0 client for Silverlight.
Public method SaveChanges(SaveChangesOptions) Saves the changes that the DataServiceContext is tracking to storage.Not supported by the WCF Data Services 5.0 client for Silverlight.
Public method SetLink Notifies the DataServiceContext that a new link exists between the objects specified and that the link is represented by the property specified by the sourceProperty parameter.
Public method SetSaveStream(Object, Stream, Boolean, DataServiceRequestArgs) Sets a binary data stream for the specified entity, with the specified headers in the request message.
Public method SetSaveStream(Object, Stream, Boolean, String, String) Sets a binary data stream that belongs to the specified entity, with the specified Content-Type and Slug headers in the request message.
Public method SetSaveStream(Object, String, Stream, Boolean, DataServiceRequestArgs) Sets a named binary data stream that belongs to the specified entity, with the specified headers in the request message.
Public method SetSaveStream(Object, String, Stream, Boolean, String) Sets a binary data stream for the specified entity.
Public method ToString (Inherited from Object.)
Public method TryGetEntity<TEntity> Test retrieval of an entity being tracked by the DataServiceContext by reference to the URI of the entity.
Public method TryGetUri Retrieves the canonical URI associated with the specified entity, if available.
Public method UpdateObject Changes the state of the specified object in the DataServiceContext to Modified.

Top

Events

  Name Description
Public event ReadingEntity Occurs after entity data has been completely read into the entity object.
Public event SendingRequest Occurs when a new HttpWebRequest has been created.
Public event SendingRequest2 Occurs when a new HttpWebRequest has been created.
Public event WritingEntity Occurs after an entity has been fully serialized into XML in a request message.

Top

Remarks

WCF Data Services are stateless, but the DataServiceContext is not. State on the client is maintained between interactions in order to support features such as update management. This class, and the DataServiceQuery class that represents a particular HTTP request to a data service, are the two main classes in the client library.

Examples

The following example shows how to use the DataServiceContext generated by the Add Service Reference tool to implicitly execute a query against the Northwind data service that returns all customers. The URI of the requested Customers entity set is determined automatically by the context. The query is executed implicitly when the enumeration occurs. The Northwind data service is created when you complete the WCF Data Services?quickstart.

' 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);
}

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Reference

System.Data.Services.Client Namespace

Other Resources

Data Client (WCF Data Services)