Compartir a través de


DataServiceContext.LoadProperty Método (Object, String, Uri)

Carga una página de entidades relacionadas usando el URI de vínculo siguiente proporcionado.

No compatible con el cliente de WCF Data Services 5.0 para Silverlight.

Espacio de nombres:  System.Data.Services.Client
Ensamblado:  Microsoft.Data.Services.Client (en Microsoft.Data.Services.Client.dll)

Sintaxis

'Declaración
Public Function LoadProperty ( _
    entity As Object, _
    propertyName As String, _
    nextLinkUri As Uri _
) As QueryOperationResponse
'Uso
Dim instance As DataServiceContext
Dim entity As Object
Dim propertyName As String
Dim nextLinkUri As Uri
Dim returnValue As QueryOperationResponse

returnValue = instance.LoadProperty(entity, _
    propertyName, nextLinkUri)
public QueryOperationResponse LoadProperty(
    Object entity,
    string propertyName,
    Uri nextLinkUri
)
public:
QueryOperationResponse^ LoadProperty(
    Object^ entity, 
    String^ propertyName, 
    Uri^ nextLinkUri
)
member LoadProperty : 
        entity:Object * 
        propertyName:string * 
        nextLinkUri:Uri -> QueryOperationResponse 
public function LoadProperty(
    entity : Object, 
    propertyName : String, 
    nextLinkUri : Uri
) : QueryOperationResponse

Parámetros

  • entity
    Tipo: System.Object
    Entidad que contiene la propiedad que se va a cargar.
  • propertyName
    Tipo: System.String
    Nombre de la propiedad de la entidad especificada que se va a cargar.
  • nextLinkUri
    Tipo: System.Uri
    URI que se usa para cargar la página siguiente de resultados.

Valor devuelto

Tipo: System.Data.Services.Client.QueryOperationResponse
Instancia de QueryOperationResponse<T> que contiene los resultados de la solicitud.

Excepciones

Excepción Condición
InvalidOperationException

Cuando entity se encuentra en un estado Detached o Added.

Comentarios

Cuando entity se encuentra en un estado Unchanged o Modified, las entidades relacionadas se cargan en el estado Unchanged y los vínculos entre las entidades también se crean en un estado Unchanged.

Cuando entity se encuentra en un estado Deleted, las entidades relacionadas se cargan en el estado Unchanged y los vínculos entre las entidades se crean en el estado Deleted.

Ejemplos

En este ejemplo se devuelve las entidades Orders relacionadas con cada entidad Customers y se usa un bucle do?while para cargar páginas de entidades Customers y un bucle while anidado para cargar páginas de entidades Orders relacionadas del servicio de datos. El método LoadProperty se usa para cargar páginas de entidades Orders relacionadas.

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

Vea también

Referencia

DataServiceContext Clase

Sobrecarga de LoadProperty

Espacio de nombres System.Data.Services.Client

Otros recursos

Cómo: Cargar resultados paginados (WCF Data Services)

Cargar contenido aplazado (WCF Data Services)