DataServiceContext.LoadProperty メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
データ サービスから遅延コンテンツを読み込みます。
オーバーロード
LoadProperty(Object, String) |
指定されたプロパティの遅延コンテンツをデータ サービスから読み込みます。 |
LoadProperty(Object, String, DataServiceQueryContinuation) |
関連エンティティの次のページを、指定されたクエリ連結オブジェクトを使用してデータ サービスから読み込みます。 |
LoadProperty(Object, String, Uri) |
関連エンティティのページを、指定された次のリンク URI を使用して読み込みます。 |
LoadProperty<T>(Object, String, DataServiceQueryContinuation<T>) |
関連エンティティの次のページを、指定された汎用クエリ連結オブジェクトを使用してデータ サービスから読み込みます。 |
LoadProperty(Object, String)
指定されたプロパティの遅延コンテンツをデータ サービスから読み込みます。
public:
System::Data::Services::Client::QueryOperationResponse ^ LoadProperty(System::Object ^ entity, System::String ^ propertyName);
public System.Data.Services.Client.QueryOperationResponse LoadProperty (object entity, string propertyName);
member this.LoadProperty : obj * string -> System.Data.Services.Client.QueryOperationResponse
Public Function LoadProperty (entity As Object, propertyName As String) As QueryOperationResponse
パラメーター
- entity
- Object
読み込むプロパティを含むエンティティ。
- propertyName
- String
読み込みに指定されたエンティティのプロパティの名前。
戻り値
読み込み操作への応答。
例
次の例では、返される各 Customers
インスタンスに関連付けられた Orders
オブジェクトを明示的に読み込む方法を示します。 この例では、DataServiceContextNorthwind データ サービスに基づいてサービス参照の追加ツールによって生成された を使用します。これは、WCF Data Servicesを完了したときに作成されます。
// Create the DataServiceContext using the service URI.
NorthwindEntities context = new NorthwindEntities(svcUri);
try
{
// Enumerate over the top 10 orders obtained from the context.
foreach (Order order in context.Orders.Take(10))
{
// Explicitly load the customer for each order.
context.LoadProperty(order, "Customer");
// Write out customer and order information.
Console.WriteLine("Customer: {0} - Order ID: {1}",
order.Customer.CompanyName, order.OrderID);
}
}
catch (DataServiceQueryException ex)
{
throw new ApplicationException(
"An error occurred during query execution.", ex);
}
' Create the DataServiceContext using the service URI.
Dim context = New NorthwindEntities(svcUri)
Try
' Enumerate over the top 10 orders obtained from the context.
For Each order As Order In context.Orders.Take(10)
' Explicitly load the customer for each order.
context.LoadProperty(order, "Customer")
' Write out customer and order information.
Console.WriteLine("Customer: {0} - Order ID: {1}", _
order.Customer.CompanyName, order.OrderID)
Next
Catch ex As DataServiceQueryException
Throw New ApplicationException( _
"An error occurred during query execution.", ex)
End Try
注釈
このメソッドを呼び出すと、プロパティ値を取得するネットワーク操作が呼び出されます。 関連付けやリンクを表すプロパティを含め、エンティティのどのプロパティでも指定できます。
プロパティが関連付け、リンク、または遅延プロパティを表す場合、このメソッドを呼び出すと、関連リソースを遅延読み込みする方法がクライアントに提供されます。
エンティティが未変更状態または変更状態にある場合は、プロパティ値は関連エンティティを読み込み、それらのエンティティを未変更のリンクと共に変更なしとマークします。
プロパティが既に読み込まれている場合は、このメソッドを呼び出すことによって、そのプロパティの値を更新できます。
適用対象
LoadProperty(Object, String, DataServiceQueryContinuation)
関連エンティティの次のページを、指定されたクエリ連結オブジェクトを使用してデータ サービスから読み込みます。
public:
System::Data::Services::Client::QueryOperationResponse ^ LoadProperty(System::Object ^ entity, System::String ^ propertyName, System::Data::Services::Client::DataServiceQueryContinuation ^ continuation);
public System.Data.Services.Client.QueryOperationResponse LoadProperty (object entity, string propertyName, System.Data.Services.Client.DataServiceQueryContinuation continuation);
member this.LoadProperty : obj * string * System.Data.Services.Client.DataServiceQueryContinuation -> System.Data.Services.Client.QueryOperationResponse
Public Function LoadProperty (entity As Object, propertyName As String, continuation As DataServiceQueryContinuation) As QueryOperationResponse
パラメーター
- entity
- Object
読み込むプロパティを含むエンティティ。
- propertyName
- String
読み込みに指定されたエンティティのプロパティの名前。
- continuation
- DataServiceQueryContinuation
データ サービスから読み込む関連エンティティの次のページを表す DataServiceQueryContinuation<T> オブジェクト。
戻り値
関連エンティティ データの次のページを含む応答。
例外
注釈
entity
の状態が Unchanged または Modified の場合、関連エンティティは、Unchanged 状態のリンクと共に、Unchanged 状態でオブジェクトとして読み込まれます。
entity
の状態が Deleted の場合、関連エンティティは、Unchanged 状態のリンクと共に、Deleted 状態でオブジェクトとして読み込まれます。
適用対象
LoadProperty(Object, String, Uri)
関連エンティティのページを、指定された次のリンク URI を使用して読み込みます。
public:
System::Data::Services::Client::QueryOperationResponse ^ LoadProperty(System::Object ^ entity, System::String ^ propertyName, Uri ^ nextLinkUri);
public System.Data.Services.Client.QueryOperationResponse LoadProperty (object entity, string propertyName, Uri nextLinkUri);
member this.LoadProperty : obj * string * Uri -> System.Data.Services.Client.QueryOperationResponse
Public Function LoadProperty (entity As Object, propertyName As String, nextLinkUri As Uri) As QueryOperationResponse
パラメーター
- entity
- Object
読み込むプロパティを含むエンティティ。
- propertyName
- String
読み込みに指定されたエンティティのプロパティの名前。
- nextLinkUri
- Uri
次の結果ページを読み込むために使用する URI。
戻り値
要求の結果が格納されている QueryOperationResponse<T> のインスタンス。
例外
例
次の例は、関連する Orders
エンティティと各 Customers
エンティティを返し、do…while
ループを使用して Customers
エンティティ ページおよび入れ子になった while
ループを読み込んで、データ サービスから関連する Orders
エンティティのページを読み込みます。
LoadProperty メソッドは、関連する Orders
エンティティのページを読み込むために使用されます。
// Create the DataServiceContext using the service URI.
NorthwindEntities context = new NorthwindEntities(svcUri);
DataServiceQueryContinuation<Customer> nextLink = null;
int pageCount = 0;
int innerPageCount = 0;
try
{
// Execute the query for all customers and related orders,
// and get the response object.
var response =
context.Customers.AddQueryOption("$expand", "Orders")
.Execute() as QueryOperationResponse<Customer>;
// With a paged response from the service, use a do...while loop
// to enumerate the results before getting the next link.
do
{
// Write the page number.
Console.WriteLine("Customers Page {0}:", ++pageCount);
// If nextLink is not null, then there is a new page to load.
if (nextLink != null)
{
// Load the new page from the next link URI.
response = context.Execute<Customer>(nextLink)
as QueryOperationResponse<Customer>;
}
// Enumerate the customers in the response.
foreach (Customer c in response)
{
Console.WriteLine("\tCustomer Name: {0}", c.CompanyName);
Console.WriteLine("\tOrders Page {0}:", ++innerPageCount);
// Get the next link for the collection of related Orders.
DataServiceQueryContinuation<Order> nextOrdersLink =
response.GetContinuation(c.Orders);
while (nextOrdersLink != null)
{
foreach (Order o in c.Orders)
{
// Print out the orders.
Console.WriteLine("\t\tOrderID: {0} - Freight: ${1}",
o.OrderID, o.Freight);
}
// Load the next page of Orders.
var ordersResponse = context.LoadProperty(c, "Orders", nextOrdersLink);
nextOrdersLink = ordersResponse.GetContinuation();
}
}
}
// Get the next link, and continue while there is a next link.
while ((nextLink = response.GetContinuation()) != null);
}
catch (DataServiceQueryException ex)
{
throw new ApplicationException(
"An error occurred during query execution.", ex);
}
' Create the DataServiceContext using the service URI.
Dim context = New NorthwindEntities(svcUri)
Dim nextLink As DataServiceQueryContinuation(Of Customer) = Nothing
Dim pageCount = 0
Dim innerPageCount = 0
Try
' Execute the query for all customers and related orders,
' and get the response object.
Dim response = _
CType(context.Customers.AddQueryOption("$expand", "Orders") _
.Execute(), QueryOperationResponse(Of Customer))
' With a paged response from the service, use a do...while loop
' to enumerate the results before getting the next link.
Do
' Write the page number.
Console.WriteLine("Customers Page {0}:", ++pageCount)
' If nextLink is not null, then there is a new page to load.
If nextLink IsNot Nothing Then
' Load the new page from the next link URI.
response = CType(context.Execute(Of Customer)(nextLink), _
QueryOperationResponse(Of Customer))
End If
' Enumerate the customers in the response.
For Each c As Customer In response
Console.WriteLine(vbTab & "Customer Name: {0}", c.CompanyName)
Console.WriteLine(vbTab & "Orders Page {0}:", innerPageCount + 1)
' Get the next link for the collection of related Orders.
Dim nextOrdersLink As DataServiceQueryContinuation(Of Order) = _
response.GetContinuation(c.Orders)
While nextOrdersLink IsNot Nothing
For Each o As Order In c.Orders
' Print out the orders.
Console.WriteLine(vbTab & vbTab & "OrderID: {0} - Freight: ${1}", _
o.OrderID, o.Freight)
Next
' Load the next page of Orders.
Dim ordersResponse = _
context.LoadProperty(c, "Orders", nextOrdersLink)
nextOrdersLink = ordersResponse.GetContinuation()
End While
Next
' Get the next link, and continue while there is a next link.
nextLink = response.GetContinuation()
Loop While nextLink IsNot Nothing
Catch ex As DataServiceQueryException
Throw New ApplicationException( _
"An error occurred during query execution.", ex)
End Try
注釈
entity
の状態が Unchanged または Modified の場合、関連エンティティは Unchanged 状態で読み込まれ、エンティティ間のリンクも Unchanged 状態で作成されます。
entity
の状態が Deleted の場合、関連エンティティは Unchanged 状態で読み込まれ、エンティティ間のリンクは Deleted 状態で作成されます。
こちらもご覧ください
適用対象
LoadProperty<T>(Object, String, DataServiceQueryContinuation<T>)
関連エンティティの次のページを、指定された汎用クエリ連結オブジェクトを使用してデータ サービスから読み込みます。
public:
generic <typename T>
System::Data::Services::Client::QueryOperationResponse<T> ^ LoadProperty(System::Object ^ entity, System::String ^ propertyName, System::Data::Services::Client::DataServiceQueryContinuation<T> ^ continuation);
public System.Data.Services.Client.QueryOperationResponse<T> LoadProperty<T> (object entity, string propertyName, System.Data.Services.Client.DataServiceQueryContinuation<T> continuation);
member this.LoadProperty : obj * string * System.Data.Services.Client.DataServiceQueryContinuation<'T> -> System.Data.Services.Client.QueryOperationResponse<'T>
Public Function LoadProperty(Of T) (entity As Object, propertyName As String, continuation As DataServiceQueryContinuation(Of T)) As QueryOperationResponse(Of T)
型パラメーター
- T
読み込むコレクションの要素型。
パラメーター
- entity
- Object
読み込むプロパティを含むエンティティ。
- propertyName
- String
読み込みに指定されたエンティティのプロパティの名前。
- continuation
- DataServiceQueryContinuation<T>
データ サービスから読み込む関連エンティティの次のページを表す DataServiceQueryContinuation<T> オブジェクト。
戻り値
関連エンティティ データの次のページを含む応答。
例外
注釈
entity
の状態が Unchanged または Modified の場合、関連エンティティは、Unchanged 状態のリンクと共に、Unchanged 状態でオブジェクトとして読み込まれます。
entity
の状態が Deleted の場合、関連エンティティは、Unchanged 状態のリンクと共に、Deleted 状態でオブジェクトとして読み込まれます。
適用対象
.NET