Я работаю с устаревшей базой данных и пытаюсь преобразовать char в int для сопоставления «многие к одному». Я знаю, что это не очень хорошая идея, но я застрял со схемой как есть.
Я попытался сделать это с помощью следующего сопоставления, но обнаружил, что NHibernate добавляет псевдоним имени таблицы к ключевому слову SQL_INTEGER
.
<many-to-one name="host" formula="CONVERT(alloc_code, SQL_INTEGER)" />
Генерирует SQL
CONVERT(hostplacem0_.alloc_code, hostplacem0_.SQL_INTEGER)
Я нашел этот пост, но решение не работает один для моей ситуации.
Следует отметить, что мы создали собственный диалект используемой нами СУБД (Sybase Advantage Database Server), поскольку NHibernate не поддерживает его из коробки. Поэтому у меня есть возможность изменить это, чтобы решить эту проблему. Я уже пытался зарегистрировать SQL_INTEGER
в качестве ключевого слова, но это не помогло.