DataServiceCollection<T>.Continuation Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar ett fortsättningsobjekt som används för att returnera nästa uppsättning sidiga resultat.
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)
Egenskapsvärde
Ett DataServiceQueryContinuation<T> objekt som innehåller URI:n för att returnera nästa uppsättning sidiga resultat.
Exempel
Följande exempel är från sidan bakom koden för en XAML-sida (Extensible Application Markup Language) som definierar fönstret SalesOrders i WPF. När fönstret läses in skapas en DataServiceCollection<T> baserat på resultatet av en fråga som returnerar kunder, filtrerad efter land/region. Alla sidor i det här sidresultatet läses in tillsammans med relaterade beställningar och är bundna till egenskapen DataContext för egenskapen StackPanel som är rotlayoutkontrollen för WPF-fönstret. Mer information finns i How to: Bind Data to Windows Presentation Foundation Elements.
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
Kommentarer
Egenskapen Continuation returnerar en länk som används för att komma åt nästa uppsättning sidiga resultat när växling aktiveras i datatjänsten. Mer information finns i Konfigurera datatjänsten.
När du läser in ett sidsidigt resultat i en DataServiceCollection<T>måste du uttryckligen läsa in sidor genom att anropa Load(IEnumerable<T>) metoden på DataServiceCollection<T> genom att skicka resultatet av körningen av den URI som hämtades från Continuation egenskapen.