Frage

Zur Zeit versuche ich Subsonic3 ORM (ActiveRecords-Modus) mit den Oracle (ODP.NET) Datenprovider und der T4-Vorlage für den Zugriff eines Oracle 10g (ver. 10.2.0.3.0) DB zu verwenden.

Nachdem ihn mit einem paar kleineren Pannen zu tun, die Vorlagen bekommen die verschiedenen Codes für mich zu bauen, schaffte ich es zu kompilieren und laufen zu bekommen, aber ich laufe in ein Problem mit der Abfrage, dass es für mich erzeugt.

Tracing / durch den Code treten, habe ich einen Blick auf das, was SQL-Abfrage generiert wurde, und fanden diese:

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])

Und mein Code warf eine Ausnahme mit einer Oracle-Meldung „Fehlende Expression: ORA-00936“. Also habe ich versucht, diese Abfrage direkt auf der Kommandozeile ausgeführt wird und es mit der gleichen Nachricht-Fehler ed aus.

ich alle eckigen Klammern dann entfernt (was mir schaute nicht rechts) und die beiden „AS“ Referenzen (2. und 3. Linie) und die Abfrage RAN in Ordnung.

Kann jemand mir erklären, warum SubSonic dies tut? Oder noch besser, wie dieses Problem beheben?

Danke!

EDIT: Ich glaube, ich sollte auch fragen (da ich nicht ein Oracle-Experte bin): Sind die quadratischen Klammern normal / legal? Was ist mit dem "AS" Operator?

War es hilfreich?

Lösung

Nachdem einige graben, fand ich, dass für Oracle (und möglicherweise DB2) Unterstützung, gibt es eine Gabel aus dem Stamm auf SubSonic, die für diese zwei Datenbanken bessere Unterstützung hat. Folgen Sie diesem Link: https://github.com/rally25rs/SubSonic-3.0

Dieser Quellcode erscheint die einzig Wahre zu sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top