Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo DataServiceContext.LoadProperty (Object, String, Uri)

 

Data di pubblicazione: novembre 2016

Carica una pagina di entità correlate tramite l'URI del collegamento successivo fornito.

Spazio dei nomi:   System.Data.Services.Client
Assembly:  System.Data.Services.Client (in System.Data.Services.Client.dll)

public QueryOperationResponse LoadProperty(
	object entity,
	string propertyName,
	Uri nextLinkUri
)

Parametri

entity
Type: System.Object

Entità contenente la proprietà da caricare.

propertyName
Type: System.String

Nome della proprietà dell'entità specificata da caricare.

nextLinkUri
Type: System.Uri

URI utilizzato per caricare la pagina di risultati successiva.

Valore restituito

Type: System.Data.Services.Client.QueryOperationResponse

Istanza dell'oggetto QueryOperationResponse<T> contenente i risultati della richiesta.

Exception Condition
InvalidOperationException

Se entity è in uno stato Detached o Added.

Se entity è in uno stato Unchanged o Modified, le entità correlate vengono caricate in uno stato Unchanged e anche i collegamenti tra le entità vengono creati in uno stato Unchanged.

Se entity è in uno stato Deleted, le entità correlate vengono caricate in uno stato Unchanged e i collegamenti tra le entità vengono creati in uno stato Deleted.

In questo esempio vengono restituite entità Orders correlate con ogni entità Customers e vengono usati un ciclo do…while per caricare pagine di entità Customers e un ciclo while annidato per caricare pagine di entità Orders correlate dal servizio dati. Il metodo LoadProperty viene utilizzato per caricare pagine di entità Orders correlate.

// 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);
}

.NET Framework
Disponibile da 3.5
Torna all'inizio
Mostra: