Linq to sql LINQPad仍然找不到扩展方法';其中';添加System.Data.DataSetExtensions.dll后

Linq to sql LINQPad仍然找不到扩展方法';其中';添加System.Data.DataSetExtensions.dll后,linq-to-sql,linqpad,Linq To Sql,Linqpad,我必须在LINQ中加入2个存储过程的结果,但收到错误消息: “System.Data.DataSet”不包含“Where”的定义,并且找不到扩展方法“Where”,其中“接受类型为“System.Data.DataSet”的第一个参数”(按F4添加using指令或程序集引用) 但是,添加DataSetExtensions后,仍然会出现错误 代码: 感谢您的帮助。ADataSet是DataTable对象的集合。 它不直接包含任何数据 您需要调用DataTable上的.Where()。 编辑:如果它

我必须在LINQ中加入2个存储过程的结果,但收到错误消息: “System.Data.DataSet”不包含“Where”的定义,并且找不到扩展方法“Where”,其中“接受类型为“System.Data.DataSet”的第一个参数”(按F4添加using指令或程序集引用)

但是,添加DataSetExtensions后,仍然会出现错误

代码:


感谢您的帮助。

A
DataSet
DataTable
对象的集合。
它不直接包含任何数据

您需要调用DataTable上的
.Where()


编辑:如果它不是类型化的DataTable,您需要先调用
.AsEnumerable()

看看这个“System.Data.DataSet”不包含“AsEnumerable”的定义,并且最好的扩展方法重载为“System.Data.DataTableExtensions.AsEnumerable(System.Data.DataTable)'是否有一些无效的参数?我想还是一如既往地找到方法将存储过程查询的结果集强制转换或转换为DataTable?数据集是DataTables的集合,您必须选择要查询的表。您可以使用Tables集合(即myDataSet)上的索引运算符从DataSet获取DataTable。Tables[0]感谢SLaks,感谢您的帮助。结果来自存储过程查询,很抱歉,我没有明确说明它的确切类型,但从LINQPad我得到的印象是,默认情况下它被视为DataSet。我使用LINQPad来测试我的lambda,但最后我在代码中对c和d都使用了.ToArray()作为解决方法。foreach(c中的var item){foreach(d中的var item2){if(item.ID==item2.ID){return item.ShortDescription.ToString();}}}}//如果匹配失败,则返回null字符串。返回null;
var c = GetAllGameCategories (123);
var d = GetGameCategories(22458);

Var e = c.Where(....);  // Error on this line!