gpt4 book ai didi

nhibernate - NHibernate 方言的自定义 SQL 函数

转载 作者:行者123 更新时间:2023-12-04 20:25:14 25 4
gpt4 key购买 nike

我希望能够调用一个名为“recent_date”的自定义函数作为我的 HQL 的一部分。像这样:[Date] >= recent_date()
我创建了一个新的方言,继承自 MsSql2000Dialect 并为我的配置指定了方言。

public class NordicMsSql2000Dialect : MsSql2000Dialect
{
public NordicMsSql2000Dialect()
{
RegisterFunction(
"recent_date",
new SQLFunctionTemplate(
NHibernateUtil.Date,
"dateadd(day, -15, getdate())"
)
);
}
}

var configuration = Fluently.Configure()
.Database(
MsSqlConfiguration.MsSql2000
.ConnectionString(c => .... )
.Cache(c => c.UseQueryCache().ProviderClass<HashtableCacheProvider>())
.Dialect<NordicMsSql2000Dialect>()
)
.Mappings(m => ....)
.BuildConfiguration();

打电话时 recent_date()我收到以下错误:
System.Data.SqlClient.SqlException: 'recent_date' 不是可识别的函数名

我在如下的 HasMany 映射的 where 语句中使用它。
HasMany(x => x.RecentValues)
.Access.CamelCaseField(Prefix.Underscore)
.Cascade.SaveUpdate()
.Where("Date >= recent_date()");

我在这里缺少什么?

最佳答案

我想,Where是 SQL 语句,而不是 HQL 语句。所以它不知道这个功能。它仅适用于 HQL、查询或过滤器。

关于nhibernate - NHibernate 方言的自定义 SQL 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1845884/

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