Я хочу иметь возможность вызывать пользовательскую функцию с именем «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' не является распознанным именем функции
Я использую его в операторе where для отображения HasMany, как показано ниже.
HasMany(x => x.RecentValues)
.Access.CamelCaseField(Prefix.Underscore)
.Cascade.SaveUpdate()
.Where("Date >= recent_date()");
Что мне здесь не хватает?