没有Linq时像Linq进行查询

时间:2020-03-05 18:38:55  来源:igfitidea点击:

我有一个正在处理的项目,但目前仅支持.net framework 2.0。我喜欢linq,但是由于框架版本,我无法使用它。我所需要的不是ORM方面的问题,而是Linq的"可查询性"(甚至是一个词?)。

到目前为止,最接近的是llblgen,但是如果有更轻量的东西可以为我做查询,那就更好了。

我还查看了NHibernate,它看起来很接近可以完成我想做的事,但是它的学习曲线非常陡峭,并且映射文件不会使我感到过分兴奋。

如果有人知道会为我提供与Linq类似的查询界面(甚至更好的是,如何使Linq在.net 2.0框架上运行),我真的很想听听它。

解决方案

回答

在.NET 2.0框架中有一种引用LINQ的方法,但是我必须警告我们,它可能违反该框架的使用/ EULA条款:

.NET 2.0运行时上的LINQ

回答

首先。让linq本身在2.0上工作是不可能的。这是可能的,但实际上不是在测试环境之外要做的事情。
就其ORM /动态查询部分而言,最接近的是imho SubSonic,我会向陷在C2.0中的任何人推荐它

回答

看看这个:

http://www.albahari.com/nutshell/linqbridge.html

Linq是几件不同的事情,我不确定100%是否需要哪些位,但是以上内容可能会有所帮助。如果我们还没有关于Linq的书(我想我们还没有),那么我发现" Linq In Action"是不错的选择。

回答

自从有了VS2008,LinqBridge似乎是一个不错的起点,我只需要编译并部署到.net 2.0服务器即可。

我看过SubSonic,它也是一个有趣的选择,但是linqbridge似乎提供了更紧密的契合度,因此我不必去学习新的ORM /查询语法。

回答

我们可能要签出Subsonic。它是一个使用ActiveRecord模式的ORM。我很确定它的大多数功能都可以在.NET Framework 2.0中使用。

回答

为了回应Lance所说的,SubSonic查询语言具有一个流畅的界面,它不像LINQ那样漂亮,但是却为我们带来了一些好处(编译时间检查,智能感知等)。

回答

LinqBridge在.NET 2.0下可以正常工作,并且我们可以获得所有Linq扩展名和查询语言。我们需要VS 2008才能使用它,但是我们已经知道了。

但是,Linq不是ORM。这是一种查询语法。如果要使用Linq查询数据库,则需要.NET 3.5. 这是因为2.0没有提供将Linq代码转换为我们喜欢的数据库查询语言所需的机制。

换句话说,如果我们需要一个ORM,LinqBridge将无济于事。我们需要查看提供的其他一些建议。