LINQ to DataSet, DataTable.AsEnumerable() не распознается
Я новичок в LINQ
и пытаюсь запросить у меня DataSet
с ним. Поэтому я последовал за этот пример к письму, и он не работает.
Я знаю, что мой DataTable
нуждается в .AsEnumerable
в конце, но он не распознается IDE
. Что я делаю не так? Мне не хватает ссылки/импорта, которая не показана в примере (не первый раз, когда пример MSDN был не совсем прав), и если да, то какой? Или это совсем другое?
Пример кода:
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
Ссылки в моем проекте:
System
System.Data
System.Drawing
System.Windows.Forms
System.Xml
Ответы
Ответ 1
Пока класс, содержащий расширения, находится в пространстве имен System.Data
, он находится в сборке, которая по умолчанию не добавляется в ваш проект. Добавьте ссылку на System.Data.DataSetExtensions
в свой проект, и все должно быть в порядке. Помните, что даже после добавления ссылки любой класс, который ожидает использовать методы расширения, определенные в классе, должен также иметь инструкцию using для System.Data.
Ответ 2
Я думаю, вам может понадобиться добавить System.Data.DataSetExtensions
Ссылка на ваш проект до того, как AsEnumerable
будет работать.
Ответ 3
вам нужна ссылка на System.Data.DataSetExtensions