gpt4 book ai didi

c# - Nhibernate - 方言不支持 DbType.Double

转载 作者:可可西里 更新时间:2023-11-01 07:50:06 27 4
gpt4 key购买 nike

当我尝试执行此查询时:

        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 方言,无法想象查询会在哪里出错,因为它非常简单。

AccountBalancedouble 类型。我什至用 long 类型的 ID 字段的平均值进行了尝试,但仍然得到完全相同的错误消息。

最佳答案

NHibernate 使用强制转换来确保 AVG 函数的返回类型。

MySql 之前的版本 5 不支持 CAST 表达式中的 NUMERIC 类型。 The support was added in MySql 5.0.8 .所以你需要使用MySQL5Dialect。

原始答案:

我不知道这是否有帮助,但正如我上面所说,我遇到了类似的问题。在进一步挖掘后,我发现我一直在使用 NHibernate.Dialect.MySQLDialect(通过 FluentNHibernate.Cfg.Db.MySQLConfiguration)

为了解决我的问题,我改用了 MySQL5Dialect,即

Fluently.Configure().Database(MySQLConfiguration.Standard
.Dialect<MySQL5Dialect>()
.ConnectionString(connectionString))

希望这对你有帮助,因为我真的在这个问题上摸不着头脑......

关于c# - Nhibernate - 方言不支持 DbType.Double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8762150/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com