.net 使用LINQ所需的导入和引用

.net 使用LINQ所需的导入和引用,.net,vb.net,linq,.net,Vb.net,Linq,我以前从未使用过LINQ,并且在使用它的应用程序中出现了一个错误。这是Visual Studio 2008中的一个VB.NET(.NET 2.0)项目 以下是违规代码: Dim orderedRows = From r In resultRows Order By r.FIELDNAME Select r 下面是错误(名称更改为通用名称,但在其他方面是准确的): 因此,我认识到我需要导入LINQ库。导致我将“Imports System.Linq”添加到文件中,但这是一个未解析的引用。基于相同

我以前从未使用过LINQ,并且在使用它的应用程序中出现了一个错误。这是Visual Studio 2008中的一个VB.NET(.NET 2.0)项目

以下是违规代码:

Dim orderedRows = From r In resultRows Order By r.FIELDNAME Select r
下面是错误(名称更改为通用名称,但在其他方面是准确的):

因此,我认识到我需要导入LINQ库。导致我将“Imports System.Linq”添加到文件中,但这是一个未解析的引用。基于相同的链接,我想我需要在我的项目中添加一个对“System.Core”的引用,但是当我尝试添加引用时,它并没有被列为可用选项(也没有被选中)

我确信我错过了一些基本的东西。有人能给我指出正确的方向吗


TL;DR:LINQ工作需要什么?

更新:基于针对.NET 2.0的评论并尝试使用系统。LINQ将导致编译器错误,如下所示:

中指定的命名空间或类型 导入的“System.Linq”不包含 找不到任何公共成员或

要更改目标框架版本,请转到项目的属性->编译->高级编译选项。。。将目标框架设置为“.NET Framework 3.5”,然后重新编译


如果使用.NET 3.5不可行,那么您可以在针对.NET 2.0框架时使用LINQ to对象。

因此,如果您已将目标程序集设置为.NET 3.0或更高版本,系统是否已安装.NET 3.0或更高版本?否则,您不能将其添加到项目引用中吗?@drachenstern:系统确实安装了.NET 3.5,并且也安装了4.0。但是这个应用程序的目标是3.5。你说的“VB.NET(2.0版)”是什么意思?VB 2008附带的VB版本是VB9,而不是2(VB2在DOS上运行)。@Konrad:他可能是想说.NET2.0。编辑以澄清。@Ahmad Maged:谢谢你的建议。所有这三个导入都给了我以下错误:导入的System.Linq中指定的命名空间或类型不包含任何公共成员或找不到。我看不到System.Data.DataSetExtensions可供参考,尽管我的系统中有一个.DLL文件,位于“C:\Program Files(x86)\reference Assemblys\Microsoft\Framework\v3.5”@Joseph是否确实是根据.NET 3.5构建的?转到项目的属性->编译->高级编译选项。。。目标框架是否设置为“.NET Framework 3.5”@Joseph我通过将.NET 2.0作为目标并包含
Imports System.Linq
获得了相同的消息。瞄准.NET3.5对我来说效果很好。在这一点上,我非常肯定
System.Data.DataSetExtensions
与这个问题无关。@Ahmad:你是对的。这个项目实际上是针对.NET2.0的。对不起,没问题。在以.NET3.5为目标之后,您是否能够使其正常工作?
Expression of type '1-dimensional array of 
Company.OurLibrary.FunctionalArea.Library.StoredProcStuff.USP_MYPROC.ResultRow'
is not queryable. Make sure you are not missing an assembly
reference and/or namespace import for the LINQ provider.
C:\project\filename.vb