В настоящее время я пытаюсь использовать SubSonic3 ORM (режим ActiveRecords) с поставщиком данных Oracle (ODP.NET) и шаблоном T4 для доступа к базе данных Oracle 10g (версия 10.2.0.3.0).
После того, как я столкнулся с несколькими незначительными сбоями при получении шаблонов для построения различного кода для меня, мне удалось все это скомпилировать и запустить, но у меня возникла проблема с запросом, который он генерирует для меня.
Прослеживая / просматривая код, я посмотрел, какой 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 «Missing Expression: ORA-00936». Итак, я попытался запустить этот запрос непосредственно в командной строке, и он вызвал ошибку с тем же сообщением.
Затем я удалил все квадратные скобки (которые мне не нравились) и обе ссылки «AS» (2-я и 3-я строки), и запрос прошел нормально.
Может кто-нибудь объяснить мне, почему SubSonic это делает? Или даже лучше, как это исправить?
Спасибо!
РЕДАКТИРОВАТЬ: Думаю, мне также следует спросить (поскольку я не эксперт по Oracle): квадратные скобки нормальны / допустимы? А как насчет оператора "AS"?