DataServiceCollection<T>.Continuation Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een vervolgobject opgehaald dat wordt gebruikt om de volgende set paginaresultaten te retourneren.
public:
property System::Data::Services::Client::DataServiceQueryContinuation<T> ^ Continuation { System::Data::Services::Client::DataServiceQueryContinuation<T> ^ get(); void set(System::Data::Services::Client::DataServiceQueryContinuation<T> ^ value); };
public System.Data.Services.Client.DataServiceQueryContinuation<T> Continuation { get; set; }
member this.Continuation : System.Data.Services.Client.DataServiceQueryContinuation<'T> with get, set
Public Property Continuation As DataServiceQueryContinuation(Of T)
Waarde van eigenschap
Een DataServiceQueryContinuation<T> object dat de URI bevat om de volgende set paginaresultaten te retourneren.
Voorbeelden
Het volgende voorbeeld is afkomstig van de pagina achter code voor een XAML-pagina (Extensible Application Markup Language) waarmee het venster SalesOrders in WPF wordt gedefinieerd. Wanneer het venster wordt geladen, wordt er een DataServiceCollection<T> gemaakt op basis van het resultaat van een query die klanten retourneert, gefilterd op land/regio. Alle pagina's van dit paginaresultaat worden geladen, samen met de gerelateerde orders, en zijn gebonden aan de eigenschap DataContext van de StackPanel dat het hoofdbesturingselement voor de WPF venster is. Zie Hoe to: Gegevens binden aan Windows Presentation Foundation Elementen voor meer informatie.
using System;
using System.Data.Services.Client;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using NorthwindClient.Northwind;
namespace NorthwindClient
{
public partial class CustomerOrdersWpf3 : Window
{
private NorthwindEntities context;
private DataServiceCollection<Customer> trackedCustomers;
private const string customerCountry = "Germany";
private const string svcUri = "http://localhost:12345/Northwind.svc/";
public CustomerOrdersWpf3()
{
//InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
try
{
// Initialize the context for the data service.
context = new NorthwindEntities(new Uri(svcUri));
// Create a LINQ query that returns customers with related orders.
var customerQuery = from cust in context.Customers
where cust.Country == customerCountry
select cust;
// Create a new collection for binding based on the LINQ query.
trackedCustomers = new DataServiceCollection<Customer>(customerQuery);
// Load all pages of the response at once.
while (trackedCustomers.Continuation != null)
{
trackedCustomers.Load(
context.Execute<Customer>(trackedCustomers.Continuation.NextLinkUri));
}
// Bind the root StackPanel element to the collection;
// related object binding paths are defined in the XAML.
LayoutRoot.DataContext = trackedCustomers;
}
catch (DataServiceQueryException ex)
{
MessageBox.Show("The query could not be completed:\n" + ex.ToString());
}
catch (InvalidOperationException ex)
{
MessageBox.Show("The following error occurred:\n" + ex.ToString());
}
}
private void customerIDComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Customer selectedCustomer =
this.customerIDComboBox.SelectedItem as Customer;
try
{
// Load the first page of related orders for the selected customer.
context.LoadProperty(selectedCustomer, "Orders");
// Load all remaining pages.
while (selectedCustomer.Orders.Continuation != null)
{
selectedCustomer.Orders.Load(
context.Execute<Order>(selectedCustomer.Orders.Continuation.NextLinkUri));
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
private void saveChangesButton_Click(object sender, RoutedEventArgs e)
{
try
{
// Save changes to the data service.
context.SaveChanges();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
}
Imports System.Data.Services.Client
Imports System.Windows
Imports System.Windows.Controls
Imports northwindclientvb.Northwind
Partial Public Class CustomerOrdersWpf3
Inherits Window
Private context As NorthwindEntities
Private trackedCustomers As DataServiceCollection(Of Customer)
Private Const customerCountry As String = "Germany"
Private Const svcUri As String = "http://localhost:12345/Northwind.svc/"
Private Sub Window_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
Try
' Initialize the context for the data service.
context = New NorthwindEntities(New Uri(svcUri))
' Create a LINQ query that returns customers with related orders.
Dim customerQuery = From cust In context.Customers
Where cust.Country = customerCountry
Select cust
' Create a new collection for binding based on the LINQ query.
trackedCustomers = New DataServiceCollection(Of Customer)(customerQuery)
' Load all pages of the response at once.
While trackedCustomers.Continuation IsNot Nothing
trackedCustomers.Load( _
context.Execute(Of Customer)(trackedCustomers.Continuation.NextLinkUri))
End While
' Bind the root StackPanel element to the collection
' related object binding paths are defined in the XAML.
Me.LayoutRoot.DataContext = trackedCustomers
Catch ex As DataServiceQueryException
MessageBox.Show("The query could not be completed:\n" + ex.ToString())
Catch ex As InvalidOperationException
MessageBox.Show("The following error occurred:\n" + ex.ToString())
End Try
End Sub
Private Sub customerIDComboBox_SelectionChanged(ByVal sender As Object, ByVal e As SelectionChangedEventArgs)
Dim selectedCustomer As Customer = _
CType(Me.customerIDComboBox.SelectedItem, Customer)
Try
If selectedCustomer.Orders.Count = 0 Then
' Load the first page of related orders for the selected customer.
context.LoadProperty(selectedCustomer, "Orders")
End If
' Load all remaining pages.
While selectedCustomer.Orders.Continuation IsNot Nothing
selectedCustomer.Orders.Load( _
context.Execute(Of Order)(selectedCustomer.Orders.Continuation.NextLinkUri))
End While
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
End Sub
Private Sub saveChangesButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
Try
' Save changes to the data service.
context.SaveChanges()
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
End Sub
End Class
Opmerkingen
De Continuation eigenschap retourneert een koppeling die wordt gebruikt voor toegang tot de volgende set paginaresultaten wanneer paging is ingeschakeld in de gegevensservice. Zie De gegevensservice configureren voor meer informatie.
Bij het laden van een gepaginad resultaat in een DataServiceCollection<T>, moet u pagina's expliciet laden door de Load(IEnumerable<T>) methode aan te roepen op de DataServiceCollection<T> methode door het resultaat van de uitvoering van de URI die is verkregen van de Continuation eigenschap door te geven.