DataServiceContext.LoadProperty Metod

Definition

Läser in uppskjutet innehåll från datatjänsten.

Överlagringar

Name Description
LoadProperty(Object, String)

Läser in uppskjutet innehåll för en angiven egenskap från datatjänsten.

LoadProperty(Object, String, DataServiceQueryContinuation)

Läser in nästa sida med relaterade entiteter från datatjänsten med hjälp av det angivna frågefortsättningsobjektet.

LoadProperty(Object, String, Uri)

Läser in en sida med relaterade entiteter med hjälp av den angivna URI:n för nästa länk.

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

Läser in nästa sida med relaterade entiteter från datatjänsten med hjälp av det angivna allmänna frågefortsättningsobjektet.

LoadProperty(Object, String)

Läser in uppskjutet innehåll för en angiven egenskap från datatjänsten.

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

Parametrar

entity
Object

Entiteten som innehåller egenskapen som ska läsas in.

propertyName
String

Namnet på egenskapen för den angivna entitet som ska läsas in.

Returer

Svaret på inläsningsåtgärden.

Exempel

I följande exempel visas hur du uttryckligen läser in objektet Customers som är relaterat till varje returnerad Orders instans. I det här exemplet används det DataServiceContext som genereras av verktyget Lägg till tjänstreferens baserat på Northwind-datatjänsten, som skapas när du slutför 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

Kommentarer

Om du anropar den här metoden anropas en nätverksåtgärd för att hämta egenskapsvärdet. Den angivna egenskapen kan vara någon av egenskaperna i entiteten, inklusive egenskaper som representerar associationer eller länkar.

Om egenskapen representerar en association, länk eller uppskjuten egenskap ger anrop av den här metoden klienten ett sätt att läsa in relaterade resurser på ett lättsinnigt sätt.

Om entiteten är i oförändrat eller ändrat tillstånd läser egenskapsvärdet in de relaterade entiteterna och markerar dem oförändrade med oförändrade länkar

Om egenskapen redan har lästs in kan du med den här metoden uppdatera värdet för egenskapen.

Gäller för

LoadProperty(Object, String, DataServiceQueryContinuation)

Läser in nästa sida med relaterade entiteter från datatjänsten med hjälp av det angivna frågefortsättningsobjektet.

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

Parametrar

entity
Object

Entiteten som innehåller egenskapen som ska läsas in.

propertyName
String

Namnet på egenskapen för den angivna entitet som ska läsas in.

continuation
DataServiceQueryContinuation

Ett DataServiceQueryContinuation<T> objekt som representerar nästa sida med relaterade entiteter som ska läsas in från datatjänsten.

Returer

Svaret som innehåller nästa sida med relaterade entitetsdata.

Undantag

När entity är i Detached tillståndet eller Added .

Kommentarer

När entity är i ett Unchanged tillstånd Modified läses de relaterade entiteterna in som objekt i ett Unchanged tillstånd, med länkar även i Unchanged tillstånd.

När entity är i ett Deleted tillstånd läses de relaterade entiteterna in som objekt i ett Unchanged tillstånd, med länkar som är i tillståndet Deleted .

Gäller för

LoadProperty(Object, String, Uri)

Läser in en sida med relaterade entiteter med hjälp av den angivna URI:n för nästa länk.

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

Parametrar

entity
Object

Entiteten som innehåller egenskapen som ska läsas in.

propertyName
String

Namnet på egenskapen för den angivna entitet som ska läsas in.

nextLinkUri
Uri

Den URI som används för att läsa in nästa resultatsida.

Returer

En instans av QueryOperationResponse<T> som innehåller resultatet av begäran.

Undantag

När entity är i ett Detached eller Added ett tillstånd.

Exempel

Det här exemplet returnerar relaterade Orders entiteter med varje Customers entitet och använder en do…while loop för att läsa in Customers entitetssidor och en kapslad while loop för att läsa in sidor med relaterade Orders entiteter från datatjänsten. Metoden LoadProperty används för att läsa in sidor med relaterade Orders entiteter.

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

Kommentarer

När entity är i ett Unchanged tillstånd Modified läses de relaterade entiteterna in i Unchanged tillståndet och länkarna mellan entiteterna skapas också i ett Unchanged tillstånd.

När entity är i ett Deleted tillstånd läses de relaterade entiteterna in i Unchanged tillståndet och länkarna mellan entiteterna skapas i tillståndet Deleted .

Se även

Gäller för

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

Läser in nästa sida med relaterade entiteter från datatjänsten med hjälp av det angivna allmänna frågefortsättningsobjektet.

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)

Typparametrar

T

Elementtyp för samling som ska läsas in.

Parametrar

entity
Object

Entiteten som innehåller egenskapen som ska läsas in.

propertyName
String

Namnet på egenskapen för den angivna entitet som ska läsas in.

continuation
DataServiceQueryContinuation<T>

Ett DataServiceQueryContinuation<T> objekt som representerar nästa sida med relaterade entiteter som ska läsas in från datatjänsten.

Returer

Svaret som innehåller nästa sida med relaterade entitetsdata.

Undantag

När entity är i Detached tillståndet eller Added .

Kommentarer

När entity är i ett Unchanged tillstånd Modified läses de relaterade entiteterna in som objekt i ett Unchanged tillstånd, med länkar även i Unchanged tillstånd.

När entity är i ett Deleted tillstånd läses de relaterade entiteterna in som objekt i ett Unchanged tillstånd, med länkar som är i tillståndet Deleted .

Gäller för