2009-09-06 62 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