형식화된 DataSet 쿼리

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

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

형식화된 DataSet를 쿼리하려면 먼저 Visual Studio에서 데이터 세트 디자이너를 사용하여 클래스를 생성해야 합니다. 자세한 내용은 데이터 세트 만들기 및 구성을 참조하세요.

예시

다음 예제에서는 형식화된 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

참고 항목