Partilhar via


DataServiceContext.LoadProperty Método

Definição

Carrega o conteúdo adiado do serviço de dados.

Sobrecargas

LoadProperty(Object, String)

Carrega o conteúdo adiado para uma propriedade especificada do serviço de dados.

LoadProperty(Object, String, DataServiceQueryContinuation)

Carrega a próxima página de entidades relacionadas do serviço de dados usando o objeto de continuação de consulta fornecido.

LoadProperty(Object, String, Uri)

Carrega uma página de entidades relacionadas usando o próximo URI de link fornecido.

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

Carrega a próxima página de entidades relacionadas do serviço de dados usando o objeto de continuação de consulta genérico fornecido.

LoadProperty(Object, String)

Carrega o conteúdo adiado para uma propriedade especificada do serviço de dados.

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

Parâmetros

entity
Object

A entidade que contém a propriedade a ser carregada.

propertyName
String

O nome da propriedade da entidade especificada a ser carregada.

Retornos

A resposta para a operação de carregamento.

Exemplos

O exemplo a seguir mostra como carregar explicitamente o Customers objeto relacionado a cada instância retornada Orders . Este exemplo usa o DataServiceContext gerado pela ferramenta Adicionar Referência de Serviço com base no serviço de dados Northwind, que é criado quando você conclui o 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

Comentários

Chamar esse método invoca uma operação de rede para buscar o valor da propriedade. A propriedade especificada pode ser qualquer uma das propriedades na entidade, incluindo propriedades que representam associações ou links.

Se a propriedade representar uma associação, link ou propriedade adiada, chamar esse método fornecerá ao cliente uma maneira de carregar lentamente os recursos relacionados.

Se a entidade estiver no estado inalterado ou modificado, o valor da propriedade carregará as entidades relacionadas e as marcará inalteradas com links inalterados

Se a propriedade já estiver carregada, chamar esse método permitirá que você atualize o valor da propriedade.

Aplica-se a

LoadProperty(Object, String, DataServiceQueryContinuation)

Carrega a próxima página de entidades relacionadas do serviço de dados usando o objeto de continuação de consulta fornecido.

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

Parâmetros

entity
Object

A entidade que contém a propriedade a ser carregada.

propertyName
String

O nome da propriedade da entidade especificada a ser carregada.

continuation
DataServiceQueryContinuation

Um objeto DataServiceQueryContinuation<T> que representa a próxima página de entidades relacionadas a ser carregada do serviço de dados.

Retornos

A resposta que contém a próxima página de dados de entidades relacionadas.

Exceções

Quando entity está no estado Detached ou Added.

Comentários

Quando entity está em um Unchanged estado ou Modified , as entidades relacionadas são carregadas como objetos em um Unchanged estado , com links também no Unchanged estado .

Quando entity está em um Deleted estado, as entidades relacionadas são carregadas como objetos em um Unchanged estado, com links que estão no Deleted estado .

Aplica-se a

LoadProperty(Object, String, Uri)

Carrega uma página de entidades relacionadas usando o próximo URI de link fornecido.

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

Parâmetros

entity
Object

A entidade que contém a propriedade a ser carregada.

propertyName
String

O nome da propriedade da entidade especificada a ser carregada.

nextLinkUri
Uri

O URI usado para carregar a próxima página de resultados.

Retornos

Uma instância da QueryOperationResponse<T> que contém os resultados da solicitação.

Exceções

Quando entity está em um estado Detached ou Added.

Exemplos

Este exemplo retorna entidades relacionadas Orders com cada Customers entidade e usa um do…while loop para carregar Customers páginas de entidades e um loop aninhado while para carregar páginas de entidades relacionadas Orders do serviço de dados. O LoadProperty método é usado para carregar páginas de entidades relacionadas 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

Comentários

Quando entity está em um Unchanged estado ou Modified , as entidades relacionadas são carregadas no Unchanged estado e os links entre as entidades também são criados em um Unchanged estado .

Quando entity está em um Deleted estado, as entidades relacionadas são carregadas no Unchanged estado e os links entre as entidades são criados no Deleted estado .

Confira também

Aplica-se a

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

Carrega a próxima página de entidades relacionadas do serviço de dados usando o objeto de continuação de consulta genérico fornecido.

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)

Parâmetros de tipo

T

Tipo de elemento da coleção a ser carregada.

Parâmetros

entity
Object

A entidade que contém a propriedade a ser carregada.

propertyName
String

O nome da propriedade da entidade especificada a ser carregada.

continuation
DataServiceQueryContinuation<T>

Um objeto DataServiceQueryContinuation<T> que representa a próxima página de entidades relacionadas a ser carregada do serviço de dados.

Retornos

A resposta que contém a próxima página de dados de entidades relacionadas.

Exceções

Quando entity está no estado Detached ou Added.

Comentários

Quando entity está em um Unchanged estado ou Modified , as entidades relacionadas são carregadas como objetos em um Unchanged estado , com links também no Unchanged estado .

Quando entity está em um Deleted estado, as entidades relacionadas são carregadas como objetos em um Unchanged estado, com links que estão no Deleted estado .

Aplica-se a