DataServiceContext.LoadProperty Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Carga contenido aplazado desde el servicio de datos.
Sobrecargas
LoadProperty(Object, String) |
Carga el contenido aplazado de una propiedad especificada desde el servicio de datos. |
LoadProperty(Object, String, DataServiceQueryContinuation) |
Carga la página siguiente de entidades relacionadas del servicio de datos usando el objeto de continuación de consulta proporcionado. |
LoadProperty(Object, String, Uri) |
Carga una página de entidades relacionadas usando el URI de vínculo siguiente proporcionado. |
LoadProperty<T>(Object, String, DataServiceQueryContinuation<T>) |
Carga la página siguiente de entidades relacionadas del servicio de datos usando el objeto de continuación de consulta genérico proporcionado. |
LoadProperty(Object, String)
Carga el contenido aplazado de una propiedad especificada desde el servicio de datos.
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
Parámetros
- entity
- Object
Entidad que contiene la propiedad que se va a cargar.
- propertyName
- String
Nombre de la propiedad de la entidad especificada que se va a cargar.
Devoluciones
Respuesta a la operación de carga.
Ejemplos
En el ejemplo siguiente se muestra cómo cargar explícitamente el objeto Customers
relacionado con cada instancia de Orders
devuelta. En este ejemplo se usa la DataServiceContext generada por la herramienta Agregar referencia de servicio basada en el servicio de datos Northwind, que se crea al completar el 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
Comentarios
Al llamar a este método se invoca una operación de red para capturar el valor de propiedad. La propiedad especificada puede ser cualquiera de las propiedades de la entidad, incluidas las propiedades que representan asociaciones o vínculos.
Si la propiedad representa una asociación, un vínculo o una propiedad aplazada, la llamada a este método proporciona al cliente una manera de cargar de forma diferida recursos relacionados.
Si la entidad está en el estado sin modificar o modificado, el valor de la propiedad carga las entidades relacionadas y las marca como sin modificar con vínculos sin modificar.
Si la propiedad ya está cargada, la llamada a este método permite actualizar el valor de la propiedad.
Se aplica a
LoadProperty(Object, String, DataServiceQueryContinuation)
Carga la página siguiente de entidades relacionadas del servicio de datos usando el objeto de continuación de consulta proporcionado.
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
Parámetros
- entity
- Object
Entidad que contiene la propiedad que se va a cargar.
- propertyName
- String
Nombre de la propiedad de la entidad especificada que se va a cargar.
- continuation
- DataServiceQueryContinuation
Objeto DataServiceQueryContinuation<T> que representa la página siguiente de entidades relacionadas que se va a cargar del servicio de datos.
Devoluciones
Respuesta que contiene la página siguiente de datos de entidades relacionadas.
Excepciones
Comentarios
Cuando entity
se encuentra en un estado Unchanged o Modified, las entidades relacionadas se cargan como objetos en un estado Unchanged, con vínculos que también están en el estado Unchanged.
Cuando entity
se encuentra en un estado Deleted, las entidades relacionadas se cargan como objetos en un estado Unchanged, con vínculos que están en el estado Deleted.
Se aplica a
LoadProperty(Object, String, Uri)
Carga una página de entidades relacionadas usando el URI de vínculo siguiente proporcionado.
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
Parámetros
- entity
- Object
Entidad que contiene la propiedad que se va a cargar.
- propertyName
- String
Nombre de la propiedad de la entidad especificada que se va a cargar.
- nextLinkUri
- Uri
URI que se usa para cargar la página siguiente de resultados.
Devoluciones
Instancia de QueryOperationResponse<T> que contiene los resultados de la solicitud.
Excepciones
Ejemplos
En este ejemplo se devuelve las entidades Orders
relacionadas con cada entidad Customers
y se utiliza un bucle do…while
para cargar páginas de entidades Customers
y un bucle while
anidado para cargar páginas de entidades Orders
relacionadas del servicio de datos. El método LoadProperty se usa para cargar páginas de entidades Orders
relacionadas.
// 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
Comentarios
Cuando entity
se encuentra en un estado Unchanged o Modified, las entidades relacionadas se cargan en el estado Unchanged y los vínculos entre las entidades también se crean en un estado Unchanged.
Cuando entity
se encuentra en un estado Deleted, las entidades relacionadas se cargan en el estado Unchanged y los vínculos entre las entidades se crean en el estado Deleted.
Consulte también
- Cómo: Cargar resultados paginados (Data Services de WCF)
- Cargar contenido diferido (Servicios de datos de WCF)
Se aplica a
LoadProperty<T>(Object, String, DataServiceQueryContinuation<T>)
Carga la página siguiente de entidades relacionadas del servicio de datos usando el objeto de continuación de consulta genérico proporcionado.
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)
Parámetros de tipo
- T
Tipo de elemento de la colección que se va a cargar.
Parámetros
- entity
- Object
Entidad que contiene la propiedad que se va a cargar.
- propertyName
- String
Nombre de la propiedad de la entidad especificada que se va a cargar.
- continuation
- DataServiceQueryContinuation<T>
Objeto DataServiceQueryContinuation<T> que representa la página siguiente de entidades relacionadas que se va a cargar del servicio de datos.
Devoluciones
Respuesta que contiene la página siguiente de datos de entidades relacionadas.
Excepciones
Comentarios
Cuando entity
se encuentra en un estado Unchanged o Modified, las entidades relacionadas se cargan como objetos en un estado Unchanged, con vínculos que también están en el estado Unchanged.
Cuando entity
se encuentra en un estado Deleted, las entidades relacionadas se cargan como objetos en un estado Unchanged, con vínculos que están en el estado Deleted.