2009-09-06 2 views
0

я класс с именем ГруппаNHibernate ошибка SQL генератор

я попытался проверить конфигурацию:

var cfg = new Configuration(); 
cfg.Configure(); 

cfg.AddAssembly(typeof (Group).Assembly); 

new SchemaExport(cfg).Execute(true, true, false); 

, когда я отладки это, им получить следующий SQL:

create table Group (
     ID INT IDENTITY NOT NULL, 
     Name NVARCHAR(255) null, 
     CreatedDate DATETIME null, 
     primary key (ID) 
    ) 

так как я помню, Группа ключ зарезервирован для Группа:

так почему NHibernate не использует котировки, такие как Group для имен таблиц?

BTW, я использую SQL Server 2005 и NHibernate 2.1

ответ

1

Если вы используете зарезервированное ключевое слово как имя объекта, вы должны пометить его с определенным знаком СУБД. Например, если вы используете SQL Server, вы должны поместить его в [] и использовать `для MySql. В этом примере вы должны написать (при условии, что вы используете сервер SQL):

<class name="Group" table="[Group]"> 
+0

В NHibernate, вы можете использовать 'и он будет переведен на соответствующий механизм базы данных цитирования. –

+0

спасибо! Я этого не знал :) – Beatles1692

Смежные вопросы