“使用NHibernate时出现了一个奇怪的错误。我不知道是什么导致了这个错误。 我是整个Visual Studio和NHibernate的新手,但不是Hibernate。我过去在Java项目中使用过Hibernate。
在向我指出错误的位置时,我们将不胜感激。
我正在使用Visual Studio 2008 SP1和Mysql 5.1。
以下是我正在使用的代码。 “
完整的代码和示例发布在这里: https://forum.hibernate.org/viewtopic.php?f=25&t=997701
答案 0 :(得分:17)
对于像我这样的NHibernate / Fluent NHibernate新手来说,FCastellanos的解决方案也适用于我(我在Windows上也得到了错误),并且Fluent NHibernate添加该配置的方式是:
Fluently.Configure()
...
.ExposeConfiguration(c => c.Properties.Add("hbm2ddl.keywords", "none"))
...
.BuildSessionFactory()
答案 1 :(得分:10)
我得到了同样的错误,但我在Ubuntu下使用了MySQL + NHibernate(2.1.0GA)+ Mono(2.4),这个链接帮助了我,希望它适合你。
关键是在会话工厂中使用它
<property name="hbm2ddl.keywords">none</property>
https://forum.hibernate.org/viewtopic.php?f=25&t=997701
就是这样:))
答案 2 :(得分:5)
使用ActiveRecord for NHibernate时,这解决了同样的错误。相关位是key =“hbm2ddl.keywords”value =“none”,这在你的web.config中。
<activerecord isWeb="true">
<config>
<add key="connection.driver_class" value="NHibernate.Driver.MySqlDataDriver"/>
<add key="dialect" value="NHibernate.Dialect.MySQLDialect"/>
<add key="connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
<add key="connection.connection_string_name" value="BrochureDb"/>
<add key="proxyfactory.factory_class" value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"/>
<add key="hbm2ddl.keywords" value="none" />
</config>
</activerecord>
答案 3 :(得分:3)
我的第一个猜测是NHibernate将列和/或表名称标识为保留字。你的名为“hibernate”的类可能是一个可能的罪魁祸首,但如果没有关于你的错误的更多信息,那么有点难以追查。一些建议:
答案 4 :(得分:2)
如果以编程方式执行,您应该这样做:
cfg.SetProperty(NHibernate.Cfg.Environment.Hbm2ddlKeyWords, "none");
答案 5 :(得分:0)
我也遇到了这个问题。我最终这样做了:
这是对NHibernate的代码更改,但对我有用。