共用方式為


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 命名空間 (Namespace)。
公用屬性 Entities 取得 DataServiceContext 目前正在追蹤的所有資源之清單。
公用屬性 HttpStack 取得值,此值表示在存取資料服務時所要使用的 HTTP 實作類型。僅受到適用於 Silverlight 的 WCF Data Services 5.0 用戶端支援。
公用屬性 IgnoreMissingProperties 取得或設定從型別讀取的屬性是否必須對應至用戶端型別上的屬性。
公用屬性 IgnoreResourceNotFoundException 取得或設定是否在資料服務傳回 404 錯誤 (找不到資源) 時引發例外狀況。
公用屬性 Links 取得 DataServiceContext 物件目前正在追蹤的所有關聯或連結之集合。
公用屬性 MaxProtocolVersion 取得用戶端允許使用的 Open Data Protocol (OData) 最大版本。
公用屬性 MergeOption 取得或設定從資料服務接收實體 (Entity) 的同步處理選項。
公用屬性 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 Data Services 是無狀態的,但 DataServiceContext 不是。 為了支援如更新管理等功能,會在互動之間維護用戶端上的狀態。 這個類別以及 DataServiceQuery 類別 (後者表示對資料服務的特定 HTTP 要求) 是用戶端程式庫中兩個主要類別。

範例

下列範例示範如何使用「加入服務參考」工具所產生的 DataServiceContext,以隱含方式對 Northwind 資料服務執行查詢,傳回所有客戶。 內容會自動判斷所要求之 Customers 實體集的 URI。 發生列舉時會隱含執行查詢。 當您完成 WCF Data Services 快速入門時會建立 Northwind 資料服務。

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