2010-08-11 5 views
2

Я настраиваю Замок Active Record для доступа к устаревшей базе данных на Microsoft SQL Server. В рассматриваемой таблице есть столбец с именем функция. Когда я attampt загрузить запись дает мне эту ошибку:Доступ к таблице, где имя столбца является зарезервированным ключевым словом

Неправильный синтаксис около «функции» ключевое слово

Эта ошибка происходит потому, что SQL NHibernate запроса генерирует попытки доступа столбец с именем функции, которая случается быть ограниченным ключевым словом. Исправление состоит в том, чтобы обернуть имя столбца в квадратных скобках ([function]) в инструкции SQL. Можно ли сообщить nhibernate об этом в своем автогенерированном SQL?

+0

Возможный дубликат [Замок ActiveRecord Table name conflict] (http://stackoverflow.com/questions/2752072/castle-activerecord-table-name-conflict) –

ответ

1

Это поможет вам:

http://quomon.com/question-How-do-I-handle-database-reserved-words-in-NHibernate-1148.aspx

Пример, где таблица является зарезервированным ключевым словом:

<class name="User" table="[user]" lazy="false"> 

Я думаю, что то же самое относится и к именам столбцов. Оберните их в квадратные скобки.

+1

переносной способ выразить это использует обратные ссылки, см. Дублирующий вопрос Справка. –

+0

Не всегда. Как вы видите в этом вопросе, пользователь отправил ответ, который не использует обратные вызовы, вероятно, потому, что использование обратных ссылок для него не сработает. –

+0

взгляните на время ответов ... –