Sdílet prostřednictvím


DataServiceContext.LoadProperty Metoda

Definice

Načte odložený obsah z datové služby.

Přetížení

LoadProperty(Object, String)

Načte odložený obsah pro zadanou vlastnost z datové služby.

LoadProperty(Object, String, DataServiceQueryContinuation)

Načte další stránku souvisejících entit z datové služby pomocí zadaného objektu pokračování dotazu.

LoadProperty(Object, String, Uri)

Načte stránku souvisejících entit pomocí zadaného identifikátoru URI dalšího odkazu.

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

Načte další stránku souvisejících entit z datové služby pomocí zadaného objektu pokračování obecného dotazu.

LoadProperty(Object, String)

Načte odložený obsah pro zadanou vlastnost z datové služby.

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

Parametry

entity
Object

Entita obsahující vlastnost, která se má načíst.

propertyName
String

Název vlastnosti zadané entity, která se má načíst.

Návraty

Odpověď na operaci načítání.

Příklady

Následující příklad ukazuje, jak explicitně načíst Customers objekt, který souvisí s každou vrácenou Orders instancí. V tomto příkladu DataServiceContext se používá objekt vygenerovaný nástrojem Přidat odkaz na službu založenou na datové službě Northwind, která se vytvoří po dokončení 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

Poznámky

Volání této metody vyvolá síťovou operaci pro načtení hodnoty vlastnosti. Zadaná vlastnost může být libovolná z vlastností entity, včetně vlastností, které představují přidružení nebo propojení.

Pokud vlastnost představuje vlastnost přidružení, propojení nebo odloženou vlastnost, volání této metody poskytuje klientovi způsob, jak líně načíst související prostředky.

Pokud je entita v nezměněném nebo změněném stavu, hodnota vlastnosti načte související entity a označí je beze změny pomocí nezměněných odkazů.

Pokud je vlastnost již načtena, volání této metody umožňuje aktualizovat hodnotu vlastnosti.

Platí pro

LoadProperty(Object, String, DataServiceQueryContinuation)

Načte další stránku souvisejících entit z datové služby pomocí zadaného objektu pokračování dotazu.

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

Parametry

entity
Object

Entita obsahující vlastnost, která se má načíst.

propertyName
String

Název vlastnosti zadané entity, která se má načíst.

continuation
DataServiceQueryContinuation

Objekt DataServiceQueryContinuation<T> , který představuje další stránku souvisejících entit, které se mají načíst z datové služby.

Návraty

Odpověď, která obsahuje další stránku souvisejících dat entity.

Výjimky

Když entity je ve Detached stavu nebo Added .

Poznámky

Pokud entity je ve Unchanged stavu nebo Modified , jsou související entity načteny jako objekty ve Unchanged stavu, s odkazy také ve Unchanged stavu.

Pokud entity jsou ve Deleted stavu, jsou související entity načteny jako objekty ve Unchanged stavu s odkazy, které jsou ve Deleted stavu.

Platí pro

LoadProperty(Object, String, Uri)

Načte stránku souvisejících entit pomocí zadaného identifikátoru URI dalšího odkazu.

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

Parametry

entity
Object

Entita obsahující vlastnost, která se má načíst.

propertyName
String

Název vlastnosti zadané entity, která se má načíst.

nextLinkUri
Uri

Identifikátor URI, který se používá k načtení další stránky výsledků.

Návraty

Instance QueryOperationResponse<T> , která obsahuje výsledky požadavku.

Výjimky

Když entity je ve stavu nebo AddedDetached.

Příklady

Tento příklad vrátí související Orders entity s každou Customers entitou a používá smyčku do…while k načtení Customers stránek entit a vnořenou while smyčku pro načtení stránek souvisejících Orders entit z datové služby. Metoda LoadProperty se používá k načtení stránek souvisejících Orders entit.

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

Poznámky

Pokud entity je ve Unchanged stavu nebo Modified , jsou související entity načteny ve Unchanged stavu a propojení mezi entitami jsou také vytvořena ve Unchanged stavu.

Pokud entity jsou ve stavu, načtou Deleted se související entity ve Unchanged stavu a propojení mezi entitami se vytvoří ve Deleted stavu.

Viz také

Platí pro

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

Načte další stránku souvisejících entit z datové služby pomocí zadaného objektu pokračování obecného dotazu.

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)

Parametry typu

T

Typ elementu kolekce, která se má načíst.

Parametry

entity
Object

Entita obsahující vlastnost, která se má načíst.

propertyName
String

Název vlastnosti zadané entity, která se má načíst.

continuation
DataServiceQueryContinuation<T>

Objekt DataServiceQueryContinuation<T> , který představuje další stránku souvisejících entit, které se mají načíst z datové služby.

Návraty

Odpověď, která obsahuje další stránku souvisejících dat entity.

Výjimky

Když entity je ve Detached stavu nebo Added .

Poznámky

Pokud entity je ve Unchanged stavu nebo Modified , jsou související entity načteny jako objekty ve Unchanged stavu, s odkazy také ve Unchanged stavu.

Pokud entity jsou ve Deleted stavu, jsou související entity načteny jako objekty ve Unchanged stavu s odkazy, které jsou ve Deleted stavu.

Platí pro