【发布时间】:2012-02-04 10:29:33
【问题描述】:
当我尝试执行这个查询时:
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 方言,无法想象查询可能出错的地方,因为它非常简单。
AccountBalance 的类型为 double。我什至用 ID 字段的平均值进行了尝试,该字段的类型为 long,但仍然得到完全相同的错误消息。
【问题讨论】:
-
您使用的是哪个版本的 Nhibernate?
-
你能分享一下你是如何配置会话工厂的
-
Nhibernate 3.2 最新,会话工厂由代码配置。
-
我不相信 MySql 有 double 类型,如果你让
AccountBalance是single或decimal类型会发生什么 -
我有同样的问题:'session.Query
().GroupBy(x => x.Country.Name).Select(x => new { Key = x.Key, Value = x.Sum(y => y.Amount) });' (金额是小数,我收到关于不支持 DbType.Decimal 的消息) hql: 'select r.Country.Name, sum(r.Amount) from Event r group by r.Country.Name' 工作正常:/
标签: c# mysql nhibernate dialect