Nhibernate-方言不支持DbType.Double
本文关键字:Double DbType 不支持 方言 Nhibernate- | 更新日期: 2023-09-27 18:19:34
当我尝试执行此查询时:
var q = session.QueryOver<Member>();
q.Select(Projections.Avg<Member>(x => x.AccountBalance));
var result = q.List();
我得到了一个:
Dialect does not support DbType.Double
Parameter name: typecode
有什么想法吗?我使用的是MySQL方言,无法想象查询在哪里会出错,因为它非常简单。
CCD_ 1是CCD_。我甚至用ID
字段的平均值进行了尝试,它的类型很长,但仍然得到了完全相同的错误消息。
NHibernate使用强制转换来确保AVG
函数的返回类型。
MySql早期版本5不支持CAST
表达式中的NUMERIC
类型。MySql 5.0.8中添加了该支持。因此,您需要使用MySQL5Dialect。
原始答案:
我不知道这是否会有所帮助,但正如我上面所说,我也遇到了类似的问题。在进一步挖掘后,我发现我一直在使用NHibernate.Dialect.MySQLDialect(通过FluentHibernate.Cfg.Db.MySQLConfiguration)
为了解决我的问题,我使用了MySQL5Dialect,即
Fluently.Configure().Database(MySQLConfiguration.Standard
.Dialect<MySQL5Dialect>()
.ConnectionString(connectionString))
希望这能帮到你,因为我真的很头疼。。。
更改配置文件上的方言或引导