你总是可以为你的数据库设置一个hibernate.dialect
方言,它是NHibernate.Dialect.Dialect
的一个子类。如果你不需要使用基于native
或者sequence
的主键自动生成算法,或者悲观锁定(使用ISession.Lock()
或者 IQuery.SetLockMode()
)的话,方言就可以不必指定。然而,假若你指定了一个方言,Hibernate会为上面列出的一些属性使用特殊默认值,省得你手工指定它们。
表2.3 NHibernate SQL 方言 (hibernate.dialect
)
RDBMS | 方言 |
---|---|
DB2 | NHibernate.Dialect.DB2Dialect |
PostgreSQL | NHibernate.Dialect.PostgreSQLDialect |
MySQL | NHibernate.Dialect.MySQLDialect |
Oracle (any version) | NHibernate.Dialect.OracleDialect |
Oracle 9/10g | NHibernate.Dialect.Oracle9Dialect |
Sybase | NHibernate.Dialect.SybaseDialect |
Microsoft SQL Server 2000 | NHibernate.Dialect.MsSql2000Dialect |
Microsoft SQL Server 7 | NHibernate.Dialect.MsSql7Dialect |
Firebird | NHibernate.Dialect.FirebirdDialect |