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.
// 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 наличии UnchangedModified состояния связанные сущности загружаются как объекты в 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 наличии UnchangedModified состояния связанные сущности загружаются как объекты в Unchanged состоянии, а ссылки также находятся в Unchanged состоянии.
При entity наличии Deleted состояния связанные сущности загружаются в виде объектов в Unchanged состоянии со ссылками, которые находятся в Deleted состоянии.