代码之家  ›  专栏  ›  技术社区  ›  Tushar S

有没有一种方法可以在.NET 3.0项目中使用LINQ查询语法?

  •  4
  • Tushar S  · 技术社区  · 14 年前

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

    谢谢

    3 回复  |  直到 14 年前
        1
  •  2
  •   Justin    14 年前

    因为.NET2.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通过重新实现功能而工作,但仅限于我所相信的LinqTo对象。

    另一个选项是从Mono项目使用这些相同的dll(system.core.dll和system.data.linq.dll)。他们重新实施了所有的LINQ。linq to sql的东西可能有点不成熟,但它确实有与其他数据库一起工作的优点,而不仅仅是MSSQL。

    http://mono-project.com/Main_Page

    这就消除了将Microsoft DLL与应用程序一起分发的合法性问题。

        2
  •  2
  •   Marc    14 年前

    一个同事 LINQBridge 并取得了成功。

        3
  •  2
  •   Patrick McDonald    14 年前

    取自 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。这将防止编译错误。

    我试过这个方法,但是要注意MikeAtlas对部署这两个文件的法律后果的谨慎。

    推荐文章