DataServiceContext.LoadProperty Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Načte odložený obsah z datové služby.
Přetížení
LoadProperty(Object, String) |
Načte odložený obsah pro zadanou vlastnost z datové služby. |
LoadProperty(Object, String, DataServiceQueryContinuation) |
Načte další stránku souvisejících entit z datové služby pomocí zadaného objektu pokračování dotazu. |
LoadProperty(Object, String, Uri) |
Načte stránku souvisejících entit pomocí zadaného identifikátoru URI dalšího odkazu. |
LoadProperty<T>(Object, String, DataServiceQueryContinuation<T>) |
Načte další stránku souvisejících entit z datové služby pomocí zadaného objektu pokračování obecného dotazu. |
LoadProperty(Object, String)
Načte odložený obsah pro zadanou vlastnost z datové služby.
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
Parametry
- entity
- Object
Entita obsahující vlastnost, která se má načíst.
- propertyName
- String
Název vlastnosti zadané entity, která se má načíst.
Návraty
Odpověď na operaci načítání.
Příklady
Následující příklad ukazuje, jak explicitně načíst Customers
objekt, který souvisí s každou vrácenou Orders
instancí. V tomto příkladu DataServiceContext se používá objekt vygenerovaný nástrojem Přidat odkaz na službu založenou na datové službě Northwind, která se vytvoří po dokončení 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
Poznámky
Volání této metody vyvolá síťovou operaci pro načtení hodnoty vlastnosti. Zadaná vlastnost může být libovolná z vlastností entity, včetně vlastností, které představují přidružení nebo propojení.
Pokud vlastnost představuje vlastnost přidružení, propojení nebo odloženou vlastnost, volání této metody poskytuje klientovi způsob, jak líně načíst související prostředky.
Pokud je entita v nezměněném nebo změněném stavu, hodnota vlastnosti načte související entity a označí je beze změny pomocí nezměněných odkazů.
Pokud je vlastnost již načtena, volání této metody umožňuje aktualizovat hodnotu vlastnosti.
Platí pro
LoadProperty(Object, String, DataServiceQueryContinuation)
Načte další stránku souvisejících entit z datové služby pomocí zadaného objektu pokračování dotazu.
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
Parametry
- entity
- Object
Entita obsahující vlastnost, která se má načíst.
- propertyName
- String
Název vlastnosti zadané entity, která se má načíst.
- continuation
- DataServiceQueryContinuation
Objekt DataServiceQueryContinuation<T> , který představuje další stránku souvisejících entit, které se mají načíst z datové služby.
Návraty
Odpověď, která obsahuje další stránku souvisejících dat entity.
Výjimky
Poznámky
Pokud entity
je ve Unchanged stavu nebo Modified , jsou související entity načteny jako objekty ve Unchanged stavu, s odkazy také ve Unchanged stavu.
Pokud entity
jsou ve Deleted stavu, jsou související entity načteny jako objekty ve Unchanged stavu s odkazy, které jsou ve Deleted stavu.
Platí pro
LoadProperty(Object, String, Uri)
Načte stránku souvisejících entit pomocí zadaného identifikátoru URI dalšího odkazu.
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
Parametry
- entity
- Object
Entita obsahující vlastnost, která se má načíst.
- propertyName
- String
Název vlastnosti zadané entity, která se má načíst.
- nextLinkUri
- Uri
Identifikátor URI, který se používá k načtení další stránky výsledků.
Návraty
Instance QueryOperationResponse<T> , která obsahuje výsledky požadavku.
Výjimky
Příklady
Tento příklad vrátí související Orders
entity s každou Customers
entitou a používá smyčku do…while
k načtení Customers
stránek entit a vnořenou while
smyčku pro načtení stránek souvisejících Orders
entit z datové služby. Metoda LoadProperty se používá k načtení stránek souvisejících Orders
entit.
// 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
Poznámky
Pokud entity
je ve Unchanged stavu nebo Modified , jsou související entity načteny ve Unchanged stavu a propojení mezi entitami jsou také vytvořena ve Unchanged stavu.
Pokud entity
jsou ve stavu, načtou Deleted se související entity ve Unchanged stavu a propojení mezi entitami se vytvoří ve Deleted stavu.
Viz také
- Postupy: Načtení stránkovaných výsledků (WCF Data Services)
- Načítání odloženého obsahu (WCF Data Services)
Platí pro
LoadProperty<T>(Object, String, DataServiceQueryContinuation<T>)
Načte další stránku souvisejících entit z datové služby pomocí zadaného objektu pokračování obecného dotazu.
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)
Parametry typu
- T
Typ elementu kolekce, která se má načíst.
Parametry
- entity
- Object
Entita obsahující vlastnost, která se má načíst.
- propertyName
- String
Název vlastnosti zadané entity, která se má načíst.
- continuation
- DataServiceQueryContinuation<T>
Objekt DataServiceQueryContinuation<T> , který představuje další stránku souvisejících entit, které se mají načíst z datové služby.
Návraty
Odpověď, která obsahuje další stránku souvisejících dat entity.
Výjimky
Poznámky
Pokud entity
je ve Unchanged stavu nebo Modified , jsou související entity načteny jako objekty ve Unchanged stavu, s odkazy také ve Unchanged stavu.
Pokud entity
jsou ve Deleted stavu, jsou související entity načteny jako objekty ve Unchanged stavu s odkazy, které jsou ve Deleted stavu.