miércoles, 5 de octubre de 2011

Linq to dataset en Visual Basic .NET (Option Infer ON)

En este ejemplo siguiente consultaremos un datatable no typed.


Dim ds As New DataSet()

' Llena el dataset
FillDataSet(ds)

Dim orders As DataTable = ds.Tables("customers")

' Consulta

Dim query = _ 
    From c In customers.AsEnumerable() _ 
    Where  c.country = "SPAIN" _ 
    Select New With { _ 
        .id = c.Field(Of String)("Customerid"), _ 
        .city = c.Field(Of String)("city"), _ 
    }
' transfiere la información de linq a data table
Dim boundTable As DataTable = query.CopyToDataTable()

' Bind del datable al grid
gridview1.DataSource = boundTable

Lo interesante es si queremos hacer una consulta sobre la consulta, y queremos que nos habilite el intelligence, tenemos  que agregar la siguiente linea antes de nuestros imports:

Option Infer On


Al establecer Option Infer en On, puede declarar las variables locales sin especificar explícitamente un tipo de datos. El compilador deduce el tipo de datos de una variable a partir del tipo de su expresión de inicialización. Ejemplo:



Dim query2 = _ 
    From c In query2 _     
    Where  c.city = "BARCELONA" _ 
    Select New With { _ 
        c.id, _ 
        c.city , _ 
    }





Tanto el campo id, como city nos aparecera automáticamente al presionar punto gracias al intellingence.


http://msdn.microsoft.com/es-ar/library/bb384665.aspx (Option Infer on)
http://msdn.microsoft.com/es-ar/library/bb386921.aspx#Y566 (LINQ To Datatable)

No hay comentarios.: