|
|
1
6
sqlsoup 在sqlalchemy中,如果您想要一个清晰(ish)的单行程序,我认为它可以为您提供python中最快的解决方案。请看这一页。
|
|
|
2
5
LINQ是C#和VB.NET的语言特性。它是编译器可以识别并经过特殊处理的特殊语法。它还依赖于另一种称为表达式树的语言特性。 表达式树是一种 不同之处在于它们不是特殊的语法。它们的编写方式与任何其他类实例化一样,但编译器确实会通过将lambda转换为运行时的实例化来对它们进行特殊处理 abstract syntax tree . 可以在运行时对其进行操作,以生成另一种语言(即SQL)的命令。
因此,用另一种语言进行这些操作的一个障碍是它们是否支持运行时AST构建/操作。我不知道Python或Boo的任何实现是否可以,但我还没有听说过任何这样的特性。 |
|
|
3
5
仔细看 SQLAlchemy . 这可能会做很多你想做的事情。它为您提供了在服务器上运行的普通SQL的Python语法。 |
|
|
4
4
this thread 例如讨论)。现在,您应该能够编写如下内容:
current discussion 关于如何处理命名冲突。 |
|
|
5
1
LINQ的一个关键因素是编译器生成表达式树的能力。 我在Nemerle中使用一个宏,它将给定的Nemerle表达式转换为表达式树对象。 然后我可以将其传递给iQueryTables上的Where/Select/etc扩展方法。 我通过这篇文章的链接得到了Nemerle宏: http://groups.google.com/group/nemerle-dev/browse_thread/thread/99b9dcfe204a578e 应该可以为Boo创建类似的宏。然而,考虑到您需要支持的一大组可能的表达式,这是相当多的工作。 http://ayende.com/Blog/archive/2008/08/05/Ugly-Linq.aspx |
|
|
6
1
Boo支持使用与python相同的语法的列表生成器表达式。有关这方面的更多信息,请查看上的Boo文档 Generator expressions 和 List comprehensions . |