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
находится в состоянии 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>, содержащий результаты запроса.
Исключения
Примеры
Этот пример возвращает связанные сущности 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.
См. также раздел
- Практическое руководство. Загрузка результатов, разбитых на страницы (службы данных WCF)
- Загрузка отложенного содержимого (службы данных WCF)
Применяется к
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
находится в состоянии Unchanged или Modified, связанные сущности загружаются в виде объектов в состоянии Unchanged со ссылками также в состоянии Unchanged.
Если entity
находится в состоянии Deleted, связанные сущности загружаются в состоянии Unchanged со ссылками в состоянии Deleted.