다음을 통해 공유


DataServiceCollection<T> 클래스

항목이 추가되거나 제거된 경우 또는 목록이 새로 고쳐진 경우 알림을 제공하는 동적 엔터티 컬렉션을 나타냅니다.

상속 계층

System.Object
  System.Collections.ObjectModel.Collection<T>
    System.Collections.ObjectModel.ObservableCollection<T>
      System.Data.Services.Client.DataServiceCollection<T>

네임스페이스:  System.Data.Services.Client
어셈블리:  Microsoft.Data.Services.Client(Microsoft.Data.Services.Client.dll)

구문

‘선언
Public Class DataServiceCollection(Of T) _
    Inherits ObservableCollection(Of T)
‘사용 방법
Dim instance As DataServiceCollection(Of T)
public class DataServiceCollection<T> : ObservableCollection<T>
generic<typename T>
public ref class DataServiceCollection : public ObservableCollection<T>
type DataServiceCollection<'T> =  
    class
        inherit ObservableCollection<'T>
    end
JScript는 제네릭 형식 및 메서드를 지원하지 않습니다.

유형 매개 변수

  • T
    엔터티 형식입니다.

DataServiceCollection<T> 유형에서 다음 멤버를 표시합니다.

생성자

  이름 설명
공용 메서드 DataServiceCollection<T>() DataServiceCollection<T> 클래스의 새 인스턴스를 만듭니다.
공용 메서드 DataServiceCollection<T>(IEnumerable<T>) 쿼리 실행을 기반으로 DataServiceCollection<T> 클래스의 새 인스턴스를 만듭니다.
공용 메서드 DataServiceCollection<T>(DataServiceContext) 지정된 DataServiceContext를 사용하는 DataServiceCollection<T> 클래스의 새 인스턴스를 만듭니다.
공용 메서드 DataServiceCollection<T>(IEnumerable<T>, TrackingMode) 지정된 추적 모드를 사용하여 쿼리 실행을 기반으로 DataServiceCollection<T> 클래스의 새 인스턴스를 만듭니다.
공용 메서드 DataServiceCollection<T>(DataServiceContext, String, Func<EntityChangedParams, Boolean>, Func<EntityCollectionChangedParams, Boolean>) 제공된 변경 메서드 대리자 및 지정된 DataServiceContext를 사용하여 쿼리 실행을 기반으로 DataServiceCollection<T> 클래스의 새 인스턴스를 만듭니다.
공용 메서드 DataServiceCollection<T>(IEnumerable<T>, TrackingMode, String, Func<EntityChangedParams, Boolean>, Func<EntityCollectionChangedParams, Boolean>) 제공된 변경 메서드 대리자를 사용하여 쿼리 실행을 기반으로 DataServiceCollection<T> 클래스의 새 인스턴스를 만듭니다.
공용 메서드 DataServiceCollection<T>(DataServiceContext, IEnumerable<T>, TrackingMode, String, Func<EntityChangedParams, Boolean>, Func<EntityCollectionChangedParams, Boolean>) 제공된 변경 메서드 대리자 및 제공된 DataServiceContext를 사용하여 쿼리 실행을 기반으로 DataServiceCollection<T> 클래스의 새 인스턴스를 만듭니다.

맨 위로 이동

속성

  이름 설명
공용 속성 Continuation 다음 페이징된 결과 집합을 반환하는 데 사용되는 연속 개체를 가져옵니다.
공용 속성 Count (Collection<T>에서 상속됨)
공용 속성 Item (Collection<T>에서 상속됨)
보호된 속성 Items (Collection<T>에서 상속됨)

맨 위로 이동

메서드

  이름 설명
공용 메서드 Add (Collection<T>에서 상속됨)
보호된 메서드 BlockReentrancy (ObservableCollection<T>에서 상속됨)
보호된 메서드 CheckReentrancy (ObservableCollection<T>에서 상속됨)
공용 메서드 Clear() (Collection<T>에서 상속됨)
공용 메서드 Clear(Boolean) 컬렉션에서 모든 항목을 제거하고 선택적으로 DataServiceContext에서 모든 항목을 분리합니다.
보호된 메서드 ClearItems (ObservableCollection<T>에서 상속됨)
공용 메서드 Contains (Collection<T>에서 상속됨)
공용 메서드 CopyTo (Collection<T>에서 상속됨)
공용 메서드 Detach 컬렉션의 모든 항목에 대한 DataServiceContext 추적을 사용하지 않도록 설정합니다.
공용 메서드 Equals (Object에서 상속됨)
보호된 메서드 Finalize (Object에서 상속됨)
공용 메서드 GetEnumerator (Collection<T>에서 상속됨)
공용 메서드 GetHashCode (Object에서 상속됨)
공용 메서드 GetType (Object에서 상속됨)
공용 메서드 IndexOf (Collection<T>에서 상속됨)
공용 메서드 Insert (Collection<T>에서 상속됨)
보호된 메서드 InsertItem 컬렉션의 지정한 인덱스에 지정된 항목을 추가합니다. (ObservableCollection<T>.InsertItem(Int32, T)을(를) 재정의함)
공용 메서드 Load(IEnumerable<T>) 엔터티 개체의 컬렉션을 컬렉션에 로드합니다. Silverlight용 WCF Data Services 5.0 클라이언트에서 지원되지 않습니다.
공용 메서드 Load(T) 단일 엔터티 개체를 컬렉션에 로드합니다. Silverlight용 WCF Data Services 5.0 클라이언트에서 지원되지 않습니다.
공용 메서드 LoadAsync() 엔터티의 탐색 속성을 나타낼 경우 항목을 컬렉션에 비동기적으로 로드합니다. Silverlight용 WCF Data Services 5.0 클라이언트에서만 지원됩니다.
공용 메서드 LoadAsync(IQueryable<T>) DataServiceQuery<TElement> 를 실행하여 컬렉션을 비동기적으로 로드합니다. Silverlight용 WCF Data Services 5.0 클라이언트에서만 지원됩니다.
공용 메서드 LoadNextPartialSetAsync 데이터의 다음 페이지를 컬렉션에 로드합니다. Silverlight용 WCF Data Services 5.0 클라이언트에서만 지원됩니다.
보호된 메서드 MemberwiseClone (Object에서 상속됨)
공용 메서드 Move (ObservableCollection<T>에서 상속됨)
보호된 메서드 MoveItem (ObservableCollection<T>에서 상속됨)
보호된 메서드 OnCollectionChanged (ObservableCollection<T>에서 상속됨)
보호된 메서드 OnPropertyChanged (ObservableCollection<T>에서 상속됨)
공용 메서드 Remove (Collection<T>에서 상속됨)
공용 메서드 RemoveAt (Collection<T>에서 상속됨)
보호된 메서드 RemoveItem (ObservableCollection<T>에서 상속됨)
보호된 메서드 SetItem (ObservableCollection<T>에서 상속됨)
공용 메서드 ToString (Object에서 상속됨)

맨 위로 이동

이벤트

  이름 설명
공용 이벤트 CollectionChanged (ObservableCollection<T>에서 상속됨)
공용 이벤트 LoadCompleted 비동기 로드 작업이 완료되면 발생합니다. Silverlight용 WCF Data Services 5.0 클라이언트에서만 지원됩니다.
보호된 이벤트 PropertyChanged (ObservableCollection<T>에서 상속됨)

맨 위로 이동

명시적 인터페이스 구현

  이름 설명
명시적 인터페이스 구현전용 메서드 IList.Add (Collection<T>에서 상속됨)
명시적 인터페이스 구현전용 메서드 IList.Contains (Collection<T>에서 상속됨)
명시적 인터페이스 구현전용 메서드 ICollection.CopyTo (Collection<T>에서 상속됨)
명시적 인터페이스 구현전용 메서드 IEnumerable.GetEnumerator (Collection<T>에서 상속됨)
명시적 인터페이스 구현전용 메서드 IList.IndexOf (Collection<T>에서 상속됨)
명시적 인터페이스 구현전용 메서드 IList.Insert (Collection<T>에서 상속됨)
명시적 인터페이스 구현전용 속성 IList.IsFixedSize (Collection<T>에서 상속됨)
명시적 인터페이스 구현전용 속성 ICollection<T>.IsReadOnly (Collection<T>에서 상속됨)
명시적 인터페이스 구현전용 속성 IList.IsReadOnly (Collection<T>에서 상속됨)
명시적 인터페이스 구현전용 속성 ICollection.IsSynchronized (Collection<T>에서 상속됨)
명시적 인터페이스 구현전용 속성 IList.Item (Collection<T>에서 상속됨)
명시적 인터페이스 구현전용 이벤트 INotifyPropertyChanged.PropertyChanged (ObservableCollection<T>에서 상속됨)
명시적 인터페이스 구현전용 메서드 IList.Remove (Collection<T>에서 상속됨)
명시적 인터페이스 구현전용 속성 ICollection.SyncRoot (Collection<T>에서 상속됨)

맨 위로 이동

주의

WCF Data Services는 클라이언트 응용 프로그램의 컨트롤에 대한 데이터 바인딩을 지원하는 DataServiceCollection<T> 클래스를 제공합니다. 이 클래스는 INotifyCollectionChanged 인터페이스를 구현하고 WPF(Windows Presentation Foundation) 및 Silverlight 기반 응용 프로그램에 대한 기본 데이터 바인딩 메커니즘인 ObservableCollection<T> 클래스에서 상속됩니다.

IEnumerable<T> 인터페이스를 구현하는 모든 컬렉션을 사용하여 ObservableCollection<T> 바인딩 컬렉션을 로드할 수 있습니다. 바인딩 컬렉션에 로드된 항목은 INotifyPropertyChanged 인터페이스를 구현해야 합니다. 자세한 내용은 컨트롤에 데이터 바인딩(WCF Data Services)을 참조하십시오.

다음 예제는 WPF에서 SalesOrders 창을 정의하는 XAML(Extensible Application Markup Language) 페이지에 대한 코드 숨김 페이지에서 가져온 것입니다. 창을 로드하면 관련 개체와 함께 고객을 국가별로 필터링하여 반환하는 쿼리 결과를 기준으로 DataServiceCollection<T>이 만들어집니다. 이 결과는 WPF 창의 루트 레이아웃 컨트롤인 StackPanelDataContext 속성에 바인딩됩니다.

Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Data
Imports System.Windows.Documents
Imports System.Windows.Input
Imports System.Windows.Media
Imports System.Windows.Media.Imaging
Imports System.Windows.Navigation
Imports System.Windows.Shapes
Imports System.Data.Services.Client
Imports NorthwindClient.Northwind

Partial Public Class CustomerOrdersWpf
    Inherits Window

    Private context As NorthwindEntities
    Private trackedCustomers As DataServiceCollection(Of Customer)
    Private Const customerCountry As String = "Germany"
    Private Const svcUri As String = "https://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.Expand("Orders") _
                                    Where cust.Country = customerCountry _
                                    Select cust

                ' Create a new collection for binding based on the LINQ query.
            trackedCustomers = New DataServiceCollection(Of Customer)(customerQuery)

                ' 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 saveChangesButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
        ' Save changes to the data service.
        context.SaveChanges()
    End Sub
End Class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data.Services.Client;
using NorthwindClient.Northwind;

namespace NorthwindClient
{
    public partial class CustomerOrdersWpf : Window
    {
        private NorthwindEntities context;
        private DataServiceCollection<Customer> trackedCustomers;
        private const string customerCountry = "Germany";
        private const string svcUri = "https://localhost:12345/Northwind.svc/";

        public CustomerOrdersWpf()
        {
            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.Expand("Orders")
                                    where cust.Country == customerCountry
                                    select cust;

                // Create a new collection for binding based on the LINQ query.
                trackedCustomers = new DataServiceCollection<Customer>(customerQuery);

                // 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 saveChangesButton_Click(object sender, RoutedEventArgs e)
        {
            // Save changes to the data service.
            context.SaveChanges();
        }
    }
}

다음은 위 예제의 SalesOrders 창을 WPF에서 정의하는 XAML입니다.

    <Window x:Class="CustomerOrdersWpf"
             xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="https://schemas.openxmlformats.org/markup-compatibility/2006" 
             Height="423" Width="679" Loaded="Window_Loaded">
    <StackPanel Orientation="Vertical" Height="Auto" Name="LayoutRoot" Width="Auto">
        <Label Content="Customer ID" Margin="20,0,0,0" />
        <ComboBox Name="customerIDComboBox" DisplayMemberPath="CustomerID" ItemsSource="{Binding}" 
                  IsSynchronizedWithCurrentItem="True" SelectedIndex="0" Height="23" Width="120" 
                  HorizontalAlignment="Left" Margin="20,0,0,0" VerticalAlignment="Center" />
        <ListView ItemsSource="{Binding Path=Orders}" Name="ordersDataGrid" Margin="34,46,34,50">
            <ListView.View>
                <GridView AllowsColumnReorder="False" ColumnHeaderToolTip="Line Items">
                    <GridViewColumn DisplayMemberBinding="{Binding Path=OrderID, Mode=OneWay}" 
                        Header="Order ID" Width="50"/>
                    <GridViewColumn DisplayMemberBinding="{Binding Path=OrderDate, Mode=TwoWay}" 
                        Header="Order Date" Width="50"/>
                    <GridViewColumn DisplayMemberBinding="{Binding Path=Freight, Mode=TwoWay}" 
                        Header="Freight Cost" Width="50"/>
                </GridView>
            </ListView.View>
        </ListView>
        <Button Name="saveChangesButton" Content="Save Changes" Click="saveChangesButton_Click" 
                Width="80" Height="30" Margin="450,0,0,0"/>
    </StackPanel>
</Window>

스레드 보안

이 유형의 모든 공용 static(Visual Basic에서는 Shared) 멤버는 스레드로부터 안전합니다. 인스턴스 멤버는 스레드로부터의 안전성이 보장되지 않습니다.

참고 항목

참조

System.Data.Services.Client 네임스페이스

관련 자료

컨트롤에 데이터 바인딩(WCF Data Services)