我已将NHibernate从2.1版更新到3.2.0.4000版。现在它崩溃了,当它试图访问该属性时:
[Property(0, Formula = "cast(string_value as DECIMAL)")]
public virtual double DoubleValue
{
get;
set;
}
在映射文件中,它看起来像这样:
<property name="DoubleValue" formula="cast(string_value as DECIMAL)" />
似乎NHibernate无法正确识别DECIMAL,因为它在SQL语句中将formula(attributes0_1_.string_value作为attributes0_1_.double)生成为formula0_0_。我唯一改变的是我将hbm2ddl.keywords设置为“none”。这是这个问题的根源吗?
我尝试过其他类型(big_decimal或double),这两种类型也不起作用。之后我尝试将方言设置为NHibernate.Dialect.MySQL5Dialect,但这也无济于事。