目前,我正在尝试将SubSonic3 ORM(ActiveRecords模式)与Oracle(ODP.NET)数据提供程序和T4模板一起使用来访问Oracle 10g(版本10.2.0.3.0)数据库。
在处理了一些小故障后,让模板为我构建各种代码,我设法将其全部编译并运行,但是我遇到了它为我生成的查询问题。< / p>
通过代码跟踪/步进,我看了一下生成什么SQL查询并找到了这个:
SELECT [t0].[SOME_COLUMN], [t1].[ANOTHER_COLUMN]
FROM [USER].[SOME_TABLE] AS t0
CROSS JOIN [USER].[ANOTHER_TABLE] AS t1
WHERE ([t0].[ID] = [t1].[ID])
我的代码抛出了一条带有“Missing Expression:ORA-00936”的Oracle消息的异常。所以我尝试直接在命令行运行此查询,并使用相同的消息错误地输出。
然后我删除了所有方括号(对我来说看起来不对)和“AS”引用(第2行和第3行)并且查询运行正常。
有人可以向我解释为什么SubSonic会这样做吗?或者甚至更好,如何解决这个问题?
谢谢!
编辑:我想我也应该问(因为我不是Oracle专家):方括号是正常还是合法?那么“AS”运营商呢?
答案 0 :(得分:0)
在进行了一些挖掘之后,我发现对于Oracle(可能还有DB2)的支持,SubSonic的主干上有一个fork,它可以更好地支持这两个数据库。请点击此链接:https://github.com/rally25rs/SubSonic-3.0
此源代码似乎是真正的交易。