Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法在.NET3.0项目中使用LINQ查询语法?_C#_.net 3.5_.net 3.0 - Fatal编程技术网

C# 有没有办法在.NET3.0项目中使用LINQ查询语法?

C# 有没有办法在.NET3.0项目中使用LINQ查询语法?,c#,.net-3.5,.net-3.0,C#,.net 3.5,.net 3.0,我有一个项目只能部署在运行.NET3.0的服务器上。 我非常想用LINQ来简化一些极其繁琐的逻辑。 有没有一个简单的方法来实现这一点?我接受任何语法 非常感谢一位同事使用并取得了成功。摘自: 首先,使用Linq to.NET3.0配置项目的目标框架。将删除.NET 3.5引用 然后,将System.Data.Linq.dll和System.Core.dll复制到解决方案中您喜欢的任何位置(在我的例子中,是根文件夹) 将它们添加为所有相应项目中的引用。Visual Studio将警告程序集需要更高

我有一个项目只能部署在运行.NET3.0的服务器上。 我非常想用LINQ来简化一些极其繁琐的逻辑。 有没有一个简单的方法来实现这一点?我接受任何语法

非常感谢一位同事使用并取得了成功。

摘自:

  • 首先,使用Linq to.NET3.0配置项目的目标框架。将删除.NET 3.5引用
  • 然后,将System.Data.Linq.dll和System.Core.dll复制到解决方案中您喜欢的任何位置(在我的例子中,是根文件夹)
  • 将它们添加为所有相应项目中的引用。Visual Studio将警告程序集需要更高版本的框架。按是
  • 将引用的SpecificVersion属性设置为true。这将防止编译错误

  • 我尝试了这个,它成功了,但是要小心Mike Atlas关于部署这两个文件的法律后果的警告。

    由于.NET 2.0到3.5都在CLR 2.0上运行,所以所有LINQ的东西都只是一堆库。如果包含框架版本中缺少的DLL,那么它就可以正常工作

    正如Patrick所说,关键的3.5 dll是System.Core.dll(提供System.Linq)和System.Data.Linq.dll(用于Linq到SQL)

    如果您这样做,我认为您至少需要.NET2.0SP1中的System.dll

    Marc引用的LINQBridge是通过重新实现功能来工作的,但我相信它只适用于LinqTo对象

    另一种选择是使用Mono项目中相同的dll(System.Core.dll和System.Data.Linq.dll)。他们已经重新实现了LINQ的所有功能。Linq到Sql的东西可能有点不成熟,但它确实具有与MSSQL以外的其他数据库一起工作的优点


    这消除了在应用程序中分发Microsoft DLL的合法性问题。

    wauw nice tool将对此进行检查。我认为@Justin的答案更好(参考Mono库)-如果是我,我也非常希望使用LINQ to XML。此外,Mono社区很大而且很活跃,而这只由一个人实现,我甚至不知道它是否被维护。麻省理工学院的图书馆许可证也使它适用于大多数企业场景。那么为什么我得到了a-1呢?因为你更喜欢另一个答案?我想这不值得投反对票。如果你愿意的话,如果你对帖子进行编辑,我会撤销它。@Mike,如果你认为它不能回答问题,请留下否决票;我不在乎网络角色扮演的进展。但我的意见是,它很好地解决了这个问题。但至少,留下一条评论,说明为什么你觉得它不能解决上述问题。关于LINQ to Objects的警告在引用的页面和您的原始评论中都有提到。当我说Mono已经实现了所有LINQ时,我的意思是它支持LINQ to Objects、LINQ to XML和LINQ to Sql(通过DBLinq项目)。Mono的最新版本(截至2010年7月)是2.6.7,这是我获得程序集的地方。这是迄今为止问题的最佳答案!哦,我应该补充一点,如果您想执行Linq to Xml,还需要System.Xml.Linq.dll。帕特里克用他的绝地力量欺骗了我。事实上,这给重新分配微软的图书馆带来了法律问题。做这件事要小心。这件对我来说实际上不起作用。将目标框架从3.5更改为3后,Visual Studio将删除System.Core和System.Data.Linq DLL。0@SilverGun,您在更改为3.0后是否尝试重新添加引用?@Patrick McDonald-是的,但Visual Studio会将不兼容或更新版本框架中的DLL变灰。因为您已经接受了另一个答案,我不知道你为什么还在看这个。但是,看起来您省略了上面的步骤2,您需要将2个DLL复制到项目/解决方案文件夹中,并从“添加引用”对话框的“浏览”选项卡将其添加为引用,而不能从.NET选项卡添加它们。