NHibernate: принудительное использование квадратных скобок при экспорте схемы? - PullRequest
6 голосов
/ 05 ноября 2010

Есть ли способ указать NHibernate использовать квадратные скобки для всех имен таблиц и столбцов (например, [MyColumn]) при создании экспорта схемы SQL для MS SQL Server? У меня есть устаревшая база данных, которая использует зарезервированные имена для определенных столбцов и запускает сценарий SQL, созданный с использованием NH, из-за этого выдает ошибку.

Я хочу не указывать это отдельно для каждого столбца.

ОБНОВЛЕНИЕ: я использую правильный диалект:

MsSqlConfiguration.MsSql2008.ConnectionString(connectionString)

ОБНОВЛЕНИЕ 2: @UpTheCreek указал мне верное направление - кавычки, которые помогли мне найти ответ в книге « NHibernate в действии » (стр. 76):

Невозможно, кроме цитирования всех имен таблиц и столбцов в обратных галочках, заставить NHibernate везде использовать заключенные в кавычки идентификаторы.

Ответы [ 3 ]

11 голосов
/ 05 ноября 2010

Более легкий подход:

SchemaMetadataUpdater.QuoteTableAndColumns(config)

(перед сборкой SessionFactory)

Это автоматически процитирует все зарезервированные имена.

2 голосов
/ 05 ноября 2010

Используйте обратные ссылки в файлах сопоставления вокруг имен столбцов.NH должен заменить их на правильный символ для вашего диалекта БД (в вашем случае квадратные скобки).

т.е. используйте:

<class name="SomeClass" table="`SomeTable`">

NB - Это не будет работать с апострофом.На большинстве клавиш спина расположена вверху слева.

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

Вам необходимо использовать (или написать) правильный диалект для вашей базы данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...