有没有办法在 .NET 3.0 项目中使用 LINQ 查询语法?
我有一个项目只能部署在运行.NET 3.0 的服务器上。 我非常想使用 LINQ 来简化一些极其繁琐的逻辑。 有没有一种简单的方法可以实现这一点?我会接受任何语法。
多谢
I have a project which can only be deployed on a server running .NET 3.0.
I desperately want to use LINQ to simplify some excruciatingly tedious logic.
Is there a simple way to accomplish this? I'll settle for any syntax.
Thanks a lot
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
由于 .NET 2.0 到 3.5 都在 CLR 2.0 上运行,因此所有 LINQ 内容都只是一堆库。如果您包含了您的框架版本中缺少的 DLL,那么它就可以正常工作。
正如 Patrick 所说,关键的 3.5 DLL 是 System.Core.dll(提供 System.Linq)和 System.Data.Linq.dll(用于 Linq-to-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
这消除了分发 Microsoft DLL 的合法性的任何问题与您的申请。
Since .NET 2.0 through 3.5 all run on the CLR 2.0, all the LINQ stuff is just a bunch of libraries. If you include the DLLs that are missing on your version of the framework, it will work just fine.
As Patrick says, the key 3.5 DLLs are System.Core.dll (which provided System.Linq) and System.Data.Linq.dll (for Linq-to-SQL).
If you do this, I think you need System.dll from at least .NET 2.0SP1 I believe.
LINQBridge, as cited by Marc, works by re-implementing the functionality but only for Linq-to-Objects I believe.
Another option is to use these same DLLs (System.Core.dll and System.Data.Linq.dll) from the Mono project. They have reimplemented all of LINQ. The Linq-to-Sql stuff is perhaps a little immature but it does have the virtue of working with other databases than just MSSQL.
http://mono-project.com/Main_Page
This removes any question of the legality of distributing Microsoft DLLs with your application.
一位同事使用 LINQBridge 并取得了成功。
A coworker used LINQBridge and had success.
取自 http://codebeat.wordpress.com /2008/06/23/using-linq-in-net-30/:
我尝试了这个,它有效,但要注意 Mike Atlas 关于部署这两个文件的法律后果的警告。
Taken from http://codebeat.wordpress.com/2008/06/23/using-linq-in-net-30/:
I tried this, and it worked, but beware of Mike Atlas's caution about the legal ramifications of deploying these 2 files.