Soy nuevo en LINQ
y estoy tratando de consultar mi DataSet
con él. Así que seguí al this example al pie de la letra, y no funciona.LINQ to DataSet, DataTable.AsEnumerable() no reconocido
Sé que mi DataTable
necesita el .AsEnumerable
en el extremo, pero no es reconocido por el IDE
. ¿Qué estoy haciendo mal? ¿Me falta una referencia/importación que no se muestra en el ejemplo (no sería la primera vez que un ejemplo de MSDN no era del todo correcto) y, de ser así, cuál? ¿O es algo completamente diferente?
Código de ejemplo:
Imports System
Imports System.Linq
Imports System.Linq.Expressions
Imports System.Collections.Generic
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.Common
Imports System.Globalization
//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 products As DataTable = ds.Tables("Product")
Dim query = From product In products.AsEnumerable() _
Select product
Console.WriteLine("Product Names:")
For Each p In query
Console.WriteLine(p.Field(Of String)("Name"))
Next
Las referencias en mi proyecto son:
System
System.Data
System.Drawing
System.Windows.Forms
System.Xml
Gracias, eso funciona ahora! Me he estado arrancando el pelo en esta. :) +1 a todos para System.Data.DataSetExtensions, pero obtienes el 'aceptar' para una explicación mucho mejor. Gracias de nuevo. – GSTD
¿Por qué todavía hay una necesidad de agregar una declaración de uso incluso si ya está incluida en las referencias del proyecto? – Charmie
@Charmie la declaración 'using' hace que el espacio de nombres esté disponible en el archivo/clase. Debido a que es un método de extensión, no puede hacer referencia a él utilizando el espacio de nombres completo (cuando se usa como una extensión) y, por lo tanto, debe tener el espacio de nombres incluido. – tvanfosson