如何阻止NHibernate添加;这是“uuquot;在不创建方言的情况下执行查询
我正在使用Fluent NHibernate查询我的Oracle 11g数据库。 在fluent映射文件中,我有一个如下的映射如何阻止NHibernate添加;这是“uuquot;在不创建方言的情况下执行查询,nhibernate,oracle11g,fluent-nhibernate,fluent-nhibernate-mapping,Nhibernate,Oracle11g,Fluent Nhibernate,Fluent Nhibernate Mapping,我正在使用Fluent NHibernate查询我的Oracle 11g数据库。 在fluent映射文件中,我有一个如下的映射 Map(x => x.WaterLevel).Formula("CAST(WATER_LEVEL AS DOUBLE PRECISION )") 然而,当我运行测试时,我得到 Oracle.DataAccess.Client.OracleException : ORA-00907: missing right parenthesis 由于SQL翻译中的其他字符
Map(x => x.WaterLevel).Formula("CAST(WATER_LEVEL AS DOUBLE PRECISION )")
然而,当我运行测试时,我得到
Oracle.DataAccess.Client.OracleException : ORA-00907: missing right parenthesis
由于SQL翻译中的其他字符串(此项):
CAST(this_.WATER_LEVEL AS this_.DOUBLE this_.PRECISION )
我提到
但是建议的解决方案对我不起作用。复制您的问题的唯一方法是关闭方言设置。换句话说,使用
NHibernate.dialogue.genericdialogue
但这些方言中的任何一种都能正常使用:
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="myFactory">
...
<property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
// or
<property name="dialect">NHibernate.Dialect.Oracle9iDialect</property>
// or
<property name="dialect">NHibernate.Dialect.Oracle8iDialect</property>
...
NHibernate.方言
//或
NHibernate.dial.Oracle9iDialect
//或
NHibernate.dial.Oracle8iDialect
因此,您不必像问题中所述创建方言。只要使用一个现有的,这总是更好的选择比一般的一个