Partilhar via


Consulta tipada DataSets

Se o esquema do for conhecido no momento do design do DataSet aplicativo, recomendamos que você use um typed DataSet ao usar LINQ to DataSet. Um typed DataSet é uma classe que deriva de um DataSetarquivo . Como tal, ele herda todos os métodos, eventos e propriedades de um DataSetarquivo . Além disso, um typed DataSet fornece métodos, eventos e propriedades fortemente tipados. Isso significa que você pode acessar tabelas e colunas pelo nome, em vez de usar métodos baseados em coleção. Isso torna as consultas mais simples e mais legíveis. Para obter mais informações, consulte Typed DataSets.

O LINQ to DataSet também oferece suporte à consulta em um arquivo DataSet. Com um digitado DataSet, você não precisa usar o método genérico Field ou SetField método para acessar dados de coluna. Os nomes de propriedade estão disponíveis em tempo de compilação porque as informações de tipo estão incluídas no DataSet. LINQ to DataSet fornece acesso a valores de coluna como o tipo correto, para que erros de incompatibilidade de tipo sejam detetados quando o código é compilado em vez de em tempo de execução.

Antes de começar a consultar um digitado DataSet, você deve gerar a classe usando o DataSet Designer no Visual Studio. Para obter mais informações, consulte Criar e configurar DataSets.

Exemplo

O exemplo a seguir mostra uma consulta sobre um digitado 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

Consulte também