LINQ to DataSet,DataTable.AsEnumerable()无法识别

时间:2010-10-16 14:37:16

标签: .net linq visual-studio-2010 dataset

我是LINQ的新手,我正在尝试用它来查询我的DataSet。所以我跟着this example跟着这封信,它不起作用。

我知道我的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

3 个答案:

答案 0 :(得分:81)

虽然包含扩展的类位于System.Data命名空间中,但它位于默认情况下未添加到项目的程序集中。添加对System.Data.DataSetExtensions的引用到您的项目,它应该没问题。请记住,即使在添加引用之后,任何期望使用类中定义的扩展方法的类也需要具有System.Data的using语句。

答案 1 :(得分:8)

我认为您可能需要在System.Data.DataSetExtensions生效之前向项目添加AsEnumerable参考。

答案 2 :(得分:5)

您需要引用System.Data.DataSetExtensions