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

В настоящее время я пытаюсь использовать 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"?


person Pretzel    schedule 22.11.2010    source источник


Ответы (1)


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

Этот исходный код кажется настоящим.

person Pretzel    schedule 22.11.2010
comment
Вау, извините, что я слишком поздно ответил, но я просматривал старые сообщения с тегами SubSonic и видел это. Как вы уже знаете, мой репозиторий GitHub (тот, на который вы ссылаетесь выше) - это правильное место для получения «бета-версии» поддержки Oracle ODP.NET. В конечном итоге это будет включено в основной код SubSonic для версии 3.1.0.0, но я не знаю временных рамок, когда это произойдет. Я решил, что должен оставить этот комментарий здесь для всех, кто столкнется с этим в будущем. - person CodingWithSpike; 30.12.2010
comment
@ rally25rs: привет от еще одного энтузиаста Subaru! - person quentin-starin; 24.01.2011