DataTable不包含AsEnumerable的定义

使用linq查询数据表会返回以下错误:CS0117:’DataSet1.map DataTable’不包含’AsEnumerable’的定义

Project包含System.Data.Datasetextensions的参考。

这是代码。

using System; using System.Collections; using System.ComponentModel; using System.Configuration; using System.Reflection; using System.Data; using System.Linq; using System.Data.Linq; using System.Data.Common; using System.Data.DataSetExtensions; using System.Linq.Expressions; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.SqlClient; protected void Page_Load(object sender, EventArgs e) { var query1 = from mfg_nm in DataSet1.mapDataTable.AsEnumerable() select mfg_nm; } 

运行它没有AsEnumerable()导致

 var query1 = from mfg_nm in DataSet1.mapDataTable select mfg_nm; 

CS1660:无法将lambda表达式转换为’string’类型,因为它不是委托类型

在此先感谢您的帮助

您想要的方法是在System.Data命名空间中,因此using指令很好,但您还需要对System.Data.DataSetExtensions 程序集的引用。 您确定您已将该参考作为assembly参考吗?

目前尚不清楚为什么你有一个System.Data.DataSetExtensions 命名空间的using指令 – 这不会引发错误吗?

AsEnumerable()调用的确切错误是什么? (我对第二种forms的错误感到惊讶……这不是我预期的错误。)

在发生这种情况的所有情况下,都缺少对System.Data.DataSetExtensions.dll的引用。 如果有疑问,请尝试创建一个针对.NET 4的简单控制台项目,并引用System.Data.DataSetExtensions.dll,以validation添加引用是否确实有效。

另请注意,您只需要使用System.Data命名空间。

BTW mapDataTable是一个DataTable,对吧?

谷歌搜索“system.data.datatable不包含asenumerable的定义”把我带到了这里,我的麻烦丢失了:

 using System.Data; 

由于我的实现,错误消息有点误导。 因此,我对这个问题的回答。 代码就像……

 public List MyMethod(params) { return new mynamespace.myclasslib.myclass().GetDataTable(params).AsEnumerable() .etc } 

一旦我尝试显式声明DataTable,很明显我错过了using语句。

我收到此错误消息:’System.Data.DataTable’不包含’AsEnumerable’的定义,并且没有扩展方法’AsEnumerable’接受类型’System.Data.DataTable’的第一个参数可以找到(你错过了吗?使用指令或程序集引用?)

添加

 using System.Data; 

将“System.Data.DataSetExtensions”添加到“引用”部分。 它解决了这个问题。