有没有办法在 .NET 3.0 项目中使用 LINQ 查询语法?

发布于 2024-09-11 15:42:24 字数 100 浏览 4 评论 0原文

我有一个项目只能部署在运行.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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

驱逐舰岛风号 2024-09-18 15:42:24

由于 .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.

一笔一画续写前缘 2024-09-18 15:42:24

一位同事使用 LINQBridge 并取得了成功。

A coworker used LINQBridge and had success.

土豪我们做朋友吧 2024-09-18 15:42:24

取自 http://codebeat.wordpress.com /2008/06/23/using-linq-in-net-30/

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

我尝试了这个,它有效,但要注意 Mike Atlas 关于部署这两个文件的法律后果的警告。

Taken from http://codebeat.wordpress.com/2008/06/23/using-linq-in-net-30/:

  1. First, configure the target framework of the projects using Linq to .NET 3.0. The .NET 3.5 references will be removed.
  2. Then, copy System.Data.Linq.dll and System.Core.dll in the solution, wherever you prefer (in my case, the root folder).
  3. Add them as references in all the corresponding projects. Visual Studio will warn about the assemblies need a later version of the framework. Press Yes.
  4. Set the SpecificVersion property of the references to true. This will prevent compiling errors.

I tried this, and it worked, but beware of Mike Atlas's caution about the legal ramifications of deploying these 2 files.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文