Шаблон SubSonic3 T4 для Oracle (ODP.net), генерирующий странный запрос для ActiveRecord (проблема в квадратных скобках) - PullRequest
1 голос
/ 22 ноября 2010

В настоящее время я пытаюсь использовать SubSonic3 ORM (режим ActiveRecords) с поставщиком данных Oracle (ODP.NET) и шаблоном T4 для доступа к базе данных Oracle 10g (версия 10.2.0.3.0).

После нескольких незначительных сбоев в получении шаблонов для создания различного кода для меня, мне удалось собрать все это для компиляции и запуска, но у меня возникла проблема с Query, который он генерирует для меня.

Отслеживая / проходя по коду, я взглянул на то, что генерируется 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])

И мой код выдал исключение с сообщением Oracle «Отсутствует»Выражение: ORA-00936 ".Поэтому я попытался выполнить этот запрос непосредственно в командной строке, и он вывел ошибку с тем же сообщением.

Затем я удалил все квадратные скобки (которые мне не показались правильными) и оба "КАК""ссылки (2-я и 3-я строка) и запрос выполнялся нормально.

Может кто-нибудь объяснить мне, почему SubSonic делает это?Или еще лучше, как это исправить?

Спасибо!

РЕДАКТИРОВАТЬ: Я думаю, мне следует также спросить (так как я не эксперт Oracle):квадратные скобки нормальные / законные?А как насчет оператора "AS"?

1 Ответ

0 голосов
/ 23 ноября 2010

После некоторого копания я обнаружил, что для поддержки Oracle (и, возможно, DB2) в SubSonic есть ответвление от магистрали, которое лучше поддерживает эти 2 базы данных.Перейдите по этой ссылке: https://github.com/rally25rs/SubSonic-3.0

Этот исходный код является реальной сделкой.

...