Share via


DataServiceContext.LoadProperty Méthode

Définition

Charge le contenu différé du service de données.

Surcharges

LoadProperty(Object, String)

Charge le contenu différé pour une propriété spécifiée du service de données.

LoadProperty(Object, String, DataServiceQueryContinuation)

Charge la page d'entités associées suivante du service de données en utilisant l'objet de continuation de requête fourni.

LoadProperty(Object, String, Uri)

Charge une page d'entités associées à l'aide de l'URI de lien suivant fourni.

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

Charge la page d'entités associées suivante du service de données en utilisant l'objet de continuation de requête générique fourni.

LoadProperty(Object, String)

Charge le contenu différé pour une propriété spécifiée du service de données.

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

Paramètres

entity
Object

Entité qui contient la propriété à charger.

propertyName
String

Nom de la propriété de l'entité spécifiée à charger.

Retours

Réponse à l'opération de chargement.

Exemples

L'exemple suivant montre comment charger explicitement l'objet Customers associé à chaque instance Orders retournée. Cet exemple utilise le DataServiceContext généré par l’outil Ajouter une référence de service basé sur le service de données Northwind, qui est créé lorsque vous terminez la 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

Remarques

L'appel de cette méthode appelle une opération de réseau pour récupérer la valeur de la propriété. La propriété spécifiée peut être n'importe laquelle des propriétés sur l'entité, notamment les propriétés qui représentent des associations ou des liens.

Si la propriété représente une association, un lien ou une propriété différée, l'appel de cette méthode fournit au client le moyen de charger en différé les ressources associées.

Si l'entité est à l'état inchangé ou modifié, la valeur de propriété charge les entités associées et les marque comme inchangées avec des liens inchangés.

Si la propriété est déjà chargée, l'appel de cette méthode vous permet d'actualiser la valeur de la propriété.

S’applique à

LoadProperty(Object, String, DataServiceQueryContinuation)

Charge la page d'entités associées suivante du service de données en utilisant l'objet de continuation de requête fourni.

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

Paramètres

entity
Object

Entité qui contient la propriété à charger.

propertyName
String

Nom de la propriété de l'entité spécifiée à charger.

continuation
DataServiceQueryContinuation

Objet DataServiceQueryContinuation<T> qui représente la page d'entités associées suivante à charger du service de données.

Retours

Réponse qui contient la page suivante de données d'entité connexe.

Exceptions

Lorsque entity est à l'état Detached ou Added.

Remarques

Lorsque entity est à l'état Unchanged ou Modified, les entités associées sont chargées en tant qu'objets à l'état Unchanged, avec des liens également à l'état Unchanged.

Lorsque entity est à l'état Deleted, les entités associées sont chargées en tant qu'objets à l'état Unchanged, avec des liens qui sont à l'état Deleted.

S’applique à

LoadProperty(Object, String, Uri)

Charge une page d'entités associées à l'aide de l'URI de lien suivant fourni.

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

Paramètres

entity
Object

Entité qui contient la propriété à charger.

propertyName
String

Nom de la propriété de l'entité spécifiée à charger.

nextLinkUri
Uri

URI utilisé pour charger la page de résultats suivante.

Retours

Instance de QueryOperationResponse<T> qui contient les résultats de la requête.

Exceptions

Lorsque entity est à l'état Detached ou Added.

Exemples

Cet exemple retourne des entités Orders connexes avec chaque entité Customers et utilise une boucle do…while pour charger des pages d'entités Customers et une boucle while imbriquée pour charger des pages d'entités Orders connexes à partir du service de données. La méthode LoadProperty est utilisée pour charger des pages d'entités Orders associées.

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

Remarques

Lorsque entity est à l'état Unchanged ou Modified, les entités associées sont chargées à l'état Unchanged, et les liens entre les entités sont également créés à l'état Unchanged.

Lorsque entity est à l'état Deleted, les entités associées sont chargées à l'état Unchanged, et les liens entre les entités sont créés à l'état Deleted.

Voir aussi

S’applique à

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

Charge la page d'entités associées suivante du service de données en utilisant l'objet de continuation de requête générique fourni.

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)

Paramètres de type

T

Type d'élément de collection à charger.

Paramètres

entity
Object

Entité qui contient la propriété à charger.

propertyName
String

Nom de la propriété de l'entité spécifiée à charger.

continuation
DataServiceQueryContinuation<T>

Objet DataServiceQueryContinuation<T> qui représente la page d'entités associées suivante à charger du service de données.

Retours

Réponse qui contient la page suivante de données d'entité connexe.

Exceptions

Lorsque entity est à l'état Detached ou Added.

Remarques

Lorsque entity est à l'état Unchanged ou Modified, les entités associées sont chargées en tant qu'objets à l'état Unchanged, avec des liens également à l'état Unchanged.

Lorsque entity est à l'état Deleted, les entités associées sont chargées en tant qu'objets à l'état Unchanged, avec des liens qui sont à l'état Deleted.

S’applique à