DataServiceContext.LoadProperty Metoda

Definicja

Ładuje odroczone treści z usługi danych.

Przeciążenia

LoadProperty(Object, String)

Ładuje odroczonej zawartości dla określonej właściwości z usługi danych.

LoadProperty(Object, String, DataServiceQueryContinuation)

Ładuje następną stronę powiązanych jednostek z usługi danych przy użyciu dostarczonego obiektu kontynuacji zapytania.

LoadProperty(Object, String, Uri)

Ładuje stronę powiązanych jednostek przy użyciu podanego następnego identyfikatora URI linku.

LoadProperty<T>(Object, String, DataServiceQueryContinuation<T>)

Ładuje następną stronę powiązanych jednostek z usługi danych przy użyciu dostarczonego ogólnego obiektu kontynuacji zapytania.

LoadProperty(Object, String)

Ładuje odroczonej zawartości dla określonej właściwości z usługi danych.

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

Parametry

entity
Object

Jednostka zawierająca właściwość do załadowania.

propertyName
String

Nazwa właściwości określonej jednostki do załadowania.

Zwraca

Odpowiedź na operację ładowania.

Przykłady

W poniższym przykładzie pokazano, jak jawnie załadować Customers obiekt powiązany z każdym zwróconym Orders wystąpieniem. W tym przykładzie użyto DataServiceContext narzędzia Add Service Reference opartego na usłudze danych Northwind, która jest tworzona po zakończeniu Usługi danych programu WCF .

// 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

Uwagi

Wywołanie tej metody wywołuje operację sieciową w celu pobrania wartości właściwości. Określona właściwość może być dowolną właściwością jednostki, w tym właściwości reprezentujące skojarzenia lub łącza.

Jeśli właściwość reprezentuje skojarzenie, łącze lub właściwość odroczone, wywołanie tej metody zapewnia klientowi sposób leniwego ładowania powiązanych zasobów.

Jeśli jednostka jest w stanie niezmienionym lub zmodyfikowanym, wartość właściwości ładuje powiązane jednostki i oznacza je bez zmian bez zmian

Jeśli właściwość jest już załadowana, wywołanie tej metody umożliwia odświeżenie wartości właściwości.

Dotyczy

LoadProperty(Object, String, DataServiceQueryContinuation)

Ładuje następną stronę powiązanych jednostek z usługi danych przy użyciu dostarczonego obiektu kontynuacji zapytania.

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

Parametry

entity
Object

Jednostka zawierająca właściwość do załadowania.

propertyName
String

Nazwa właściwości określonej jednostki do załadowania.

continuation
DataServiceQueryContinuation

DataServiceQueryContinuation<T> Obiekt reprezentujący następną stronę powiązanych jednostek do załadowania z usługi danych.

Zwraca

Odpowiedź zawierająca następną stronę powiązanych danych jednostki.

Wyjątki

Gdy entity jest w Detached stanie lub Added .

Uwagi

Gdy entity jest w Unchanged stanie lub Modified , powiązane jednostki są ładowane jako obiekty w Unchanged stanie, a linki również są w Unchanged stanie.

Gdy entity jest w Deleted stanie, powiązane jednostki są ładowane jako obiekty w Unchanged stanie z łączami w Deleted stanie.

Dotyczy

LoadProperty(Object, String, Uri)

Ładuje stronę powiązanych jednostek przy użyciu podanego następnego identyfikatora URI linku.

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

Parametry

entity
Object

Jednostka zawierająca właściwość do załadowania.

propertyName
String

Nazwa właściwości określonej jednostki do załadowania.

nextLinkUri
Uri

Identyfikator URI używany do ładowania następnej strony wyników.

Zwraca

Wystąpienie, QueryOperationResponse<T> które zawiera wyniki żądania.

Wyjątki

Gdy entity jest w Detached stanie lub Added .

Przykłady

Ten przykład zwraca powiązane Orders jednostki z każdą Customers jednostką do…while i używa pętli do ładowania Customers stron jednostek i pętli zagnieżdżonej while w celu załadowania stron powiązanych Orders jednostek z usługi danych. Metoda LoadProperty służy do ładowania stron powiązanych Orders jednostek.

// 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

Uwagi

Gdy entity jest w Unchanged stanie lub Modified , powiązane jednostki są ładowane w Unchanged stanie, a łącza między jednostkami są również tworzone w Unchanged stanie.

Gdy entity jest w Deleted stanie, powiązane jednostki są ładowane w Unchanged stanie, a linki między jednostkami są tworzone w Deleted stanie.

Zobacz też

Dotyczy

LoadProperty<T>(Object, String, DataServiceQueryContinuation<T>)

Ładuje następną stronę powiązanych jednostek z usługi danych przy użyciu dostarczonego ogólnego obiektu kontynuacji zapytania.

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)

Parametry typu

T

Typ kolekcji do załadowania.

Parametry

entity
Object

Jednostka zawierająca właściwość do załadowania.

propertyName
String

Nazwa właściwości określonej jednostki do załadowania.

continuation
DataServiceQueryContinuation<T>

DataServiceQueryContinuation<T> Obiekt reprezentujący następną stronę powiązanych jednostek do załadowania z usługi danych.

Zwraca

Odpowiedź zawierająca następną stronę powiązanych danych jednostki.

Wyjątki

Gdy entity jest w Detached stanie lub Added .

Uwagi

Gdy entity jest w Unchanged stanie lub Modified , powiązane jednostki są ładowane jako obiekty w Unchanged stanie, a linki również są w Unchanged stanie.

Gdy entity jest w Deleted stanie, powiązane jednostki są ładowane jako obiekty w Unchanged stanie z łączami w Deleted stanie.

Dotyczy