Este recurso traz maior produtividade e flexibilidade para os desenvolvedores já que trabalham com [Queries] na sua própria linguagem de programação.
LINQ to DataSet expõe, primariamente, os métodos adicionais nas classes [DataRowExtensions] and [DataTableExtensions]. Também se utiliza da arquitetura do ADO.NET 2.0, não tendo a intenção da substituir o ADO.NET 2.0 no código da aplicação.
O relacionamento do [LINQ to DataSet] com o [ADO.NET 2.0] e o [Data Store] é ilustrado no diagrama abaixo:
Querying DataSets Usando LINQ to DataSet
No exemplo abaixo podemos notar a facilidade de busca e manipulação dos dados em um DataSet do ADO.NET 2.0. Como a classe [DataTable] não implementa a interface [IEnumerable(T)], chamamos o método [AsEnumerable] para usar o DataTable com uma [fonte] para a cláusula [From] da LINQ query.
O exemplo busca todos os pedidos [online] da tabela [SalesOrderHeader] e mostra os atributos [order ID], [order date], e [order number] .
[Visual Basic]
' Fill the DataSet.
Dim ds As New DataSet()
ds.Locale = CultureInfo.InvariantCulture
' See the FillDataSet method in the Loading Data Into a DataSet topic.
FillDataSet(ds)
Dim orders As DataTable = ds.Tables("SalesOrderHeader")
Dim query = _
From order In orders.AsEnumerable() _
Where order.Field(Of Boolean)("OnlineOrderFlag") = True _
Select New With { _
.SalesOrderID = order.Field(Of Integer)("SalesOrderID"), _
.OrderDate = order.Field(Of DateTime)("OrderDate"), _
.SalesOrderNumber = order.Field(Of String)("SalesOrderNumber") _
}
For Each onlineOrder In query
Console.Write("Order ID: " & onlineOrder.SalesOrderID)
Console.Write(" Order date: " & onlineOrder.OrderDate)
Console.WriteLine(" Order number: " & onlineOrder.SalesOrderNumber)
Next
[C#]
// Fill the DataSet.
DataSet ds = new DataSet();
ds.Locale = CultureInfo.InvariantCulture;
FillDataSet(ds);
DataTable orders = ds.Tables["SalesOrderHeader"];
var query =
from order in orders.AsEnumerable()
where order.Field
select new
{
SalesOrderID = order.Field
OrderDate = order.Field
SalesOrderNumber = order.Field
};
foreach (var onlineOrder in query)
{
Console.WriteLine("Order ID: {0} Order date: {1:d} Order number: {2}",
onlineOrder.SalesOrderID,
onlineOrder.OrderDate,
onlineOrder.SalesOrderNumber);
}
________________________________
101 Visual Basic LINQ Samples! - http://msdn.microsoft.com/en-us/vbasic/bb688088.aspx
Nenhum comentário:
Postar um comentário
<< Ao enviar um comentário, favor clicar na opção [Enviar por e-mail comentários de acompanhamento para gtezini@gmail.com] >>