我有一个项目,只能部署在运行.NET 3.0的服务器上。 我非常希望使用LINQ来简化一些极其乏味乏味的逻辑。 有没有简单的方法来实现这一点?我会解决任何语法。有没有办法在.NET 3.0项目中使用LINQ查询语法?
非常感谢
我有一个项目,只能部署在运行.NET 3.0的服务器上。 我非常希望使用LINQ来简化一些极其乏味乏味的逻辑。 有没有简单的方法来实现这一点?我会解决任何语法。有没有办法在.NET 3.0项目中使用LINQ查询语法?
非常感谢
由于.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)。
如果你这样做,我认为你需要至少.NET 2.0SP1 System.dll我相信。
正如Marc所引用的,LINQBridge的工作原理是重新实现功能,但仅限于我相信的Linq-to-Objects。
另一种选择是使用Mono项目中的这些相同的DLL(System.Core.dll和System.Data.Linq.dll)。他们重新实现了所有的LINQ。 Linq-to-Sql的东西可能有点不成熟,但它具有与其他数据库一起工作的优点,而不仅仅是MSSQL。
http://mono-project.com/Main_Page
这消除了与您的应用程序分发微软的DLL的合法性的任何问题。
的同事,使用LINQBridge并取得了成功。
从http://codebeat.wordpress.com/2008/06/23/using-linq-in-net-30/摘自:
我试过了,它工作,但要小心Mike Atlas对部署这两个文件的法律后果的警告。
有趣,不错的发现。 – Marc 2010-07-27 22:11:16
实际上,这引发了重新分配微软图书馆的法律问题。小心这样做。 – 2010-07-27 22:47:36
这一个实际上不适合我。将目标框架从3.5更改为3.0后,Visual Studio将删除System.Core和System.Data.Linq dlls – 2010-07-28 13:56:01
当我说Mono已经实现了所有的LINQ时,我的意思是它支持Linq-to-Objects,Linq-to-XML和Linq-to-Sql(通过DBLinq项目)。最新版本的Mono(截至2010年7月)是2.6.7,这是我得到程序集的地方。 – Justin 2010-07-27 22:31:56
这是迄今为止问题中的最佳答案! – 2010-07-27 22:48:16
哦,我应该补充说,如果你想做Linq-to-XML,你还需要System.Xml.Linq.dll。帕特里克用他的绝地权力欺骗了我。 – Justin 2010-07-28 05:45:03