NHibernate bug sql 生成器
Posted
技术标签:
【中文标题】NHibernate bug sql 生成器【英文标题】:NHibernate bug sql generator 【发布时间】:2009-09-06 10:29:49 【问题描述】:我有一个名为Group的类
我尝试测试配置:
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)
)
我记得,Group 键是为 Group By
保留的那么为什么 NHibernate 不使用 Group
之类的引号作为表名呢?
顺便说一句,我使用的是 Sql Server 2005 和 NHibernate 2.1
【问题讨论】:
【参考方案1】:如果您使用保留关键字作为对象名称,则应使用 DBMS 特定符号对其进行标记。例如,如果您使用的是 SQL Server,则应将其放在 [] 中并使用 ` 表示 mysql。 在此示例中,您应该编写(假设您使用的是 SQL 服务器):
<class name="Group" table="[Group]">
【讨论】:
在NHibernate中,你可以使用`,它会被翻译成合适的数据库引用机制。以上是关于NHibernate bug sql 生成器的主要内容,如果未能解决你的问题,请参考以下文章
我怎样才能让 NHibernate 只生成 SQL 而不执行它?
NHibernate HQL 生成器支持 SQL Server 2016 时态表
nHibernate 生成了这个奇怪的 SQL; SQLS 是不是按原样使用它?