Kar*_*sar 3 c# mysql nhibernate dialect
当我尝试执行此查询时:
var q = session.QueryOver<Member>();
q.Select(Projections.Avg<Member>(x => x.AccountBalance));
var result = q.List();
Run Code Online (Sandbox Code Playgroud)
我得到一个:
Dialect does not support DbType.Double
Parameter name: typecode
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我使用的是MySQL方言,并且无法想象查询可能出错的地方因为它非常简单.
AccountBalance是类型的double.我甚至尝试过该ID字段的平均值,类型为long,但仍然得到相同的确切错误消息.
NHibernate使用强制转换来确保返回类型的AVG函数.
MySql先前版本5不支持表达式中的NUMERIC类型CAST.在MySql 5.0.8中添加了支持.所以你需要使用MySQL5Dialect.
原始答案:
我不知道这是否会有所帮助,但正如我上面所说,我遇到了类似的问题.在进一步挖掘后,我发现我一直在使用NHibernate.Dialect.MySQLDialect(通过FluentNHibernate.Cfg.Db.MySQLConfiguration)
为了解决我的问题,我使用了MySQL5Dialect,即
Fluently.Configure().Database(MySQLConfiguration.Standard
.Dialect<MySQL5Dialect>()
.ConnectionString(connectionString))
Run Code Online (Sandbox Code Playgroud)
希望这能帮助你,因为我真的在这个问题上摸不着头脑......
| 归档时间: |
|
| 查看次数: |
1910 次 |
| 最近记录: |