2009-09-06 3 views
0

j'ai classe nommée GroupeNHibernate bug générateur sql

j'ai essayé de tester la configuration:

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

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

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

quand je débugger, im obtenir SQL suivante:

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

donc comme Je me souviens, Groupe clé réservée à Grouper par

alors pourquoi NHibernate n'utilise pas de guillemets comme Group pour les noms de tables?

BTW, j'utilise Sql Server 2005 et NHibernate 2.1

Répondre

1

Si vous utilisez un mot-clé réservé comme nom d'objet, vous devez le marquer avec un signe spécifique SGBD. Par exemple, si vous utilisez SQL Server, vous devriez le mettre dans [] et utiliser `pour MySql. Dans cet exemple, vous devriez écrire (en supposant que vous utilisez le serveur SQL):

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

En NHibernate, vous pouvez utiliser 'et il sera traduit au mécanisme citant la base de données appropriée. –

+0

merci! Je ne le savais pas :) – Beatles1692