다음을 통해 공유


형식화된 데이터 집합 쿼리

응용 프로그램 디자인 타임에 DataSet의 스키마를 알고 있는 경우 LINQ to DataSet을 사용할 때 형식화된 DataSet을 사용하는 것이 좋습니다. 형식화된 DataSetDataSet에서 파생된 클래스입니다. 따라서 DataSet의 모든 메서드, 이벤트 및 속성이 상속됩니다. 또한 형식화된 DataSet에서는 강력한 형식의 메서드, 이벤트 및 속성을 제공합니다. 즉, 컬렉션 기반의 메서드 대신 이름을 사용하여 테이블과 열에 액세스할 수 있습니다. 이렇게 하면 간단하고 이해하기 쉬운 쿼리를 만들 수 있습니다. 자세한 내용은 형식화된 DataSets(ADO.NET)을 참조하십시오.

LINQ to DataSet은 형식화된 DataSet에 대한 쿼리도 지원합니다. 형식화된 DataSet을 사용하면 열 데이터에 액세스하기 위해 제네릭 Field 메서드 또는 SetField 메서드를 사용하지 않아도 됩니다. DataSet에 형식 정보가 있기 때문에 컴파일 타임에 속성 이름을 사용할 수 있습니다. LINQ to DataSet에서는 정확한 형식으로 열 값에 액세스하므로 런타임이 아니라 코드가 컴파일될 때 형식 불일치 오류가 catch됩니다.

형식화된 DataSet을 쿼리하려면 먼저 Visual Studio 2008에서 데이터 집합 디자이너를 사용하여 클래스를 생성해야 합니다. 자세한 내용은 방법: 형식화된 데이터 집합 만들기을를 참조하십시오.

예제

다음 예제에서는 형식화된 DataSet에 대한 쿼리를 보여 줍니다.

var query = from o in orders
            where o.OnlineOrderFlag == true
            select new { o.SalesOrderID,
                         o.OrderDate,
                         o.SalesOrderNumber };

foreach(var order in query) 
{
    Console.WriteLine("{0}\t{1:d}\t{2}", 
order.SalesOrderID, 
order.OrderDate, 
order.SalesOrderNumber);
}
Dim orders = ds.Tables("SalesOrderHeader")

Dim query = _
       From o In orders _
       Where o.OnlineOrderFlag = True _
       Select New {SalesOrderID := o.SalesOrderID, _
                   OrderDate := o.OrderDate, _
                   SalesOrderNumber := o.SalesOrderNumber}

For Each Dim onlineOrder In query
 Console.WriteLine("{0}\t{1:d}\t{2}", _
 onlineOrder.SalesOrderID, _
 onlineOrder.OrderDate, _
 onlineOrder.SalesOrderNumber)
Next

참고 항목

개념

DataSet 쿼리(LINQ to DataSet)

크로스 테이블 쿼리(LINQ to DataSet)

단일 테이블 쿼리(LINQ to DataSet)