当你没有Linq时,像Linq一样查询

时间:2008-08-11 10:04:50

标签: database linq orm

我有一个我正在开发的项目,但它目前只支持.net framework 2.0。我喜欢linq,但由于框架版本我无法使用它。我想要的不仅仅是ORM方面的东西,而是Linq的“可查询性”(即使是一个词?)。

到目前为止最接近的是llblgen,但如果有更轻的重量可以让我查询甚至更好。

我也看过NHibernate看起来它可以接近我想做的事情,但它有一个相当陡峭的学习曲线,映射文件不会让我过于兴奋。

如果有人知道某些内容会给我一个类似Linq的查询界面(或者甚至更好,如何让Linq在.net 2.0框架上工作)我真的很想听听它。

7 个答案:

答案 0 :(得分:5)

看看这个:

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

Linq有几个不同的东西,我不是100%确定你想要哪些位,但上述内容可能在某种程度上有用。如果你还没有关于Linq的书(我猜你没有),那么我发现“Linq In Action”是好的。

答案 1 :(得分:3)

您可能想查看Subsonic。它是一个使用ActiveRecord模式的ORM。我很确定它的大部分功能都适用于.NET Framework 2.0。

答案 2 :(得分:1)

为了回应Lance所说的 - SubSonic查询语言具有流畅的界面,不像LINQ那样漂亮,但为您提供了一些好处(编译时检查,智能感知等)。

答案 3 :(得分:1)

LinqBridge在.NET 2.0下运行良好,您可以获得所有Linq扩展和查询语言。你需要VS 2008才能使用它,但你已经知道了。

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

换句话说,如果您需要ORM, LinqBridge将无法帮助您。您需要查看提供的其他一些建议。

答案 4 :(得分:0)

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

LINQ on the .NET 2.0 Runtime

答案 5 :(得分:0)

首先。让linq本身在2.0上运行是不可能的。它可能,但在测试环境之外真的没什么可做的。

你可以从它的ORM /动态查询部分得到的最接近的是imho SubSonic,我推荐给那些陷入C#2.0的人

答案 6 :(得分:0)

LinqBridge看起来是一个非常好的起点,因为我有VS2008,我只需要编译并部署到.net 2.0服务器。

我看过SubSonic,它也是一个有趣的替代方案,但linqbridge似乎提供了更接近的适应性,因此我不必去学习新的ORM /查询语法。