DataServiceRequest<TElement> クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
データ サービスにバッチとして送信された要求オブジェクトを表します。
generic <typename TElement>
public ref class DataServiceRequest sealed : System::Data::Services::Client::DataServiceRequest
public sealed class DataServiceRequest<TElement> : System.Data.Services.Client.DataServiceRequest
type DataServiceRequest<'Element> = class
inherit DataServiceRequest
Public NotInheritable Class DataServiceRequest(Of TElement)
Inherits DataServiceRequest
型パラメーター
- TElement
- 継承
例
が返されると ExecuteBatch 、バッチ要求の HTTP 応答全体がネットワーク ストリームから読み取られますが、応答は処理されていません。 次の例に示すように、指定したエンティティが反復処理されるまで、応答で ID 解決とオブジェクトの具体化は行われません。
DataServiceContext service = new DataServiceContext(new
Uri("http://myserviceroot"));
// Create query batches.
DataServiceRequest[] reqs = new DataServiceRequest[] {
new DataServiceRequest<Category>(
new Uri("http://myserviceroot/Categories")),
new DataServiceRequest<Customer>(
new Uri("http://myserviceroot/Customers"))
};
DataServiceResponse dsr;
try
{
// Client will not throw an exception on ExecuteBatch because the
// entire response has not been processed yet to know
// whether an exception should be thrown.
dsr = service.ExecuteBatch(reqs);
if (dsr.IsBatchResponse)
{
/*inspect HTTP artifacts associated with the entire batch:
dsr.BatchHeaders, dsr.BatchStatusCode*/ }
foreach (QueryOperationResponse qr in dsr)
{
if (IsErrorStatusCode(qr.StatusCode))
{
//q.Error.Message contains the full contents of the error.
/* process any part of the Error Contract (<error> element)
sent from the service. */
}
}
else
{
if (qr.Query.ElementType == typeof(Customer))
{
//process customers
foreach (Customer c in qr){ /*process the customer*/ }
// the DataServiceContext does not materialize, resolve
// identity on Customer until it is enumerated.
}
else if (qr.Query.ElementType == typeof(Category))
{
// Process categories.
foreach (Category cat in qr)
{
/*process the category*/
}
// the DataServiceContext does not materialize or
// resolve identity on the Category until
// it is enumerated.
// This means that instream errors will be thrown
// during iteration.
}
}
}
}
catch (DataServiceRequestException e)
{
// This error is thrown if the data service returns with
// a response code < 200 or >299 or the top level element.
// If neither of the above or true, this exception is not
// thrown.
dsr = e.Response;
if (dsr.IsBatchResponse)
{
/*inspect HTTP artifacts associated with the entire batch:
dsr.BatchHeaders, dsr.BatchStatusCode*/
}
/* There will always only be one of these because if the top level
status code was >=200 and =<299 and the first element was not an
error, the call to start the query will not throw. */
foreach (QueryOperationResponse qr in dsr)
{
if (qr.Error != null)
{
// Process error.
}
}
}
注釈
データ サービスにバッチとして送信されるクエリのグループでは、クエリはインスタンスとして DataServiceRequest<TElement> 指定されます。 DataServiceResponseバッチ要求全体の応答を表す が返されます。 個々のクエリ応答は、 から派生したオブジェクトとして QueryOperationResponse 表され OperationResponse、インスタンスを DataServiceResponse 列挙することでアクセスできます。
コンストラクター
DataServiceRequest<TElement>(Uri) |
DataServiceRequest<TElement> クラスの新しいインスタンスを初期化します。 |
プロパティ
ElementType |
DataServiceRequest<TElement> インスタンスの作成に使用されたオブジェクトの型を取得します。 |
RequestUri |
要求文字列を格納している URI オブジェクトを取得します。 |
メソッド
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
ToString() |
データ サービスに対するクエリの URI を表します。 (継承元 DataServiceRequest) |
適用対象
.NET