Поделиться через


DataServiceContext.LoadProperty Метод

Определение

Загружает отложенное содержимое из службы данных.

Перегрузки

LoadProperty(Object, String)

Загружает отложенное содержание для указанного свойства из службы данных.

LoadProperty(Object, String, DataServiceQueryContinuation)

Загружает следующую страницу связанных сущностей из службы данных с использованием предоставленного объекта-продолжения запроса.

LoadProperty(Object, String, Uri)

Загружает страницу связанных сущностей с использованием предоставленного следующего URI ссылки.

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

Загружает следующую страницу связанных сущностей из службы данных с использованием предоставленного универсального объекта-продолжения запроса.

LoadProperty(Object, String)

Загружает отложенное содержание для указанного свойства из службы данных.

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

Параметры

entity
Object

Сущность, содержащая свойства для загрузки.

propertyName
String

Имя свойства для указанной сущности для загрузки.

Возвращаемое значение

Ответ на операцию загрузки.

Примеры

Следующий пример иллюстрирует явную загрузку объекта Customers, связанного с каждым возвращенным экземпляром Orders. В этом примере используется объект , DataServiceContext созданный средством Добавления ссылки на службу на основе службы данных Northwind, которая создается при выполнении 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

Комментарии

Вызов этого метода вызывает сетевую операцию для выборки значения свойства. Указанное свойство может быть одним из свойств сущности, в том числе свойств, представляющих ассоциации или ссылки.

Если свойство представляет ассоциацию, ссылку, отсроченное свойство, то вызов этого метода предоставляет клиенту возможность медленно загрузить связанные ресурсы.

Если сущность находится в неизмененном или измененном состоянии, значение свойства загружает связанные сущности и помечает их и любые ссылки как неизмененные.

Если свойство уже загружено, вызов этого метода позволяет обновить значение свойства.

Применяется к

LoadProperty(Object, String, DataServiceQueryContinuation)

Загружает следующую страницу связанных сущностей из службы данных с использованием предоставленного объекта-продолжения запроса.

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

Параметры

entity
Object

Сущность, содержащая свойства для загрузки.

propertyName
String

Имя свойства для указанной сущности для загрузки.

continuation
DataServiceQueryContinuation

Объект DataServiceQueryContinuation<T>, представляющий следующую страницу связанных сущностей для возврата из службы данных.

Возвращаемое значение

Ответ, содержащий следующую страницу связанных данных сущностей.

Исключения

Если entity находится в состоянии Detached или Added.

Комментарии

Если entity находится в состоянии Unchanged или Modified, связанные сущности загружаются в виде объектов в состоянии Unchanged со ссылками также в состоянии Unchanged.

Если entity находится в состоянии Deleted, связанные сущности загружаются в состоянии Unchanged со ссылками в состоянии Deleted.

Применяется к

LoadProperty(Object, String, Uri)

Загружает страницу связанных сущностей с использованием предоставленного следующего URI ссылки.

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

Параметры

entity
Object

Сущность, содержащая свойства для загрузки.

propertyName
String

Имя свойства для указанной сущности для загрузки.

nextLinkUri
Uri

URI, который используется для загрузки следующей страницы результатов.

Возвращаемое значение

Экземпляр QueryOperationResponse<T>, содержащий результаты запроса.

Исключения

Если entity находится в состоянии Detached или Added.

Примеры

Этот пример возвращает связанные сущности Orders вместе с каждой сущностью Customers и использует цикл do…while для загрузки страниц сущностей Customers, а также вложенный цикл while для загрузки страниц связанных сущностей Orders из службы данных. Метод LoadProperty используется для загрузки страниц связанных сущностей 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

Комментарии

Если entity находится в состоянии Unchanged или Modified, связанные сущности загружаются в состоянии Unchanged, ссылки между сущностями также создаются в состоянии Unchanged.

Если entity находится в состоянии Deleted, связанные сущности загружаются в состоянии Unchanged, ссылки между сущностями создаются в состоянии Deleted.

См. также раздел

Применяется к

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

Загружает следующую страницу связанных сущностей из службы данных с использованием предоставленного универсального объекта-продолжения запроса.

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)

Параметры типа

T

Тип элемента коллекции для загрузки.

Параметры

entity
Object

Сущность, содержащая свойства для загрузки.

propertyName
String

Имя свойства для указанной сущности для загрузки.

continuation
DataServiceQueryContinuation<T>

Объект DataServiceQueryContinuation<T>, представляющий следующую страницу связанных сущностей для возврата из службы данных.

Возвращаемое значение

Ответ, содержащий следующую страницу связанных данных сущностей.

Исключения

Если entity находится в состоянии Detached или Added.

Комментарии

Если entity находится в состоянии Unchanged или Modified, связанные сущности загружаются в виде объектов в состоянии Unchanged со ссылками также в состоянии Unchanged.

Если entity находится в состоянии Deleted, связанные сущности загружаются в состоянии Unchanged со ссылками в состоянии Deleted.

Применяется к