Freigeben über


DataServiceContext.LoadProperty-Methode (Object, String, Uri)

Lädt mit dem angegebenen nächsten Link-URI eine Seite von verknüpften Entitäten.

Wird vom WCF Data Services 5.0-Client für Silverlight nicht unterstützt.

Namespace:  System.Data.Services.Client
Assembly:  Microsoft.Data.Services.Client (in Microsoft.Data.Services.Client.dll)

Syntax

'Declaration
Public Function LoadProperty ( _
    entity As Object, _
    propertyName As String, _
    nextLinkUri As Uri _
) As QueryOperationResponse
'Usage
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

Parameter

  • entity
    Typ: System.Object
    Die Entität, die die zu ladende Eigenschaft enthält.
  • propertyName
    Typ: System.String
    Der Name der Eigenschaft in der zu ladenden Entität.
  • nextLinkUri
    Typ: System.Uri
    Der URI, der verwendet wird, um die nächste Ergebnisseite zu laden.

Rückgabewert

Typ: System.Data.Services.Client.QueryOperationResponse
Eine Instanz von QueryOperationResponse<T>, die die Ergebnisse der Anforderung enthält.

Ausnahmen

Ausnahme Bedingung
InvalidOperationException

Ist entity in Detached oder Added.

Hinweise

Wenn entity den Status Unchanged oder Modified aufweist werden die zugehörigen Entitäten im Status Unchanged geladen, und die Links zwischen den Entities werden auch im Zustand Unchanged erstellt.

Ist entity im Status Deleted werden die zugehörigen Entities mit dem Status Unchanged geladen, und die Links zwischen den Entities werden im Zustand Deleted erstellt.

Beispiele

In diesem Beispiel werden verknüpfte Orders-Entitäten mit jeder Customers-Entität zurückgegeben, und es wird eine do...while-Schleife zum Laden von Customers-Entitätenseiten und eine geschachtelte while-Schleife zum Laden verknüpfter Orders-Entitäten aus dem Datendienst verwendet. Die LoadProperty-Methode wird verwendet, um Seiten verwandter Orders-Entitäten zu laden.

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

Siehe auch

Verweis

DataServiceContext Klasse

LoadProperty-Überladung

System.Data.Services.Client-Namespace

Andere Ressourcen

Gewusst wie: Laden von ausgelagerten Ergebnissen (WCF Data Services)

Laden von verzögertem Inhalt (WCF Data Services)