次の方法で共有


DataServiceContext.LoadProperty メソッド

定義

データ サービスから遅延コンテンツを読み込みます。

オーバーロード

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 の状態が Detached または Added の場合。

注釈

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> のインスタンス。

例外

entity の状態が Detached または Added の場合。

次の例は、関連する 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 の状態が Detached または Added の場合。

注釈

entity の状態が Unchanged または Modified の場合、関連エンティティは、Unchanged 状態のリンクと共に、Unchanged 状態でオブジェクトとして読み込まれます。

entity の状態が Deleted の場合、関連エンティティは、Unchanged 状態のリンクと共に、Deleted 状態でオブジェクトとして読み込まれます。

適用対象