2009-09-06 61 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表名?

順便說一句,我使用的是SQL Server 2005和NHibernate的2.1

回答

1

如果您使用的是保留關鍵字作爲對象的名字,你應該有一個DBMS特定的符號標記它。例如,如果您使用的是SQL Server,則應將其放在[]中並使用`for MySql。 在這個例子中,你應該寫(假設您正在使用SQL Server):

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

而在NHibernate中,你可以使用',它會被轉換爲相應的數據庫引用機制。 – 2009-09-10 02:13:46

+0

謝謝!我不知道:) – Beatles1692 2009-09-10 06:08:11