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