Función SQL personalizada para dialecto NHibernate
Quiero poder llamar a una función personalizada llamada "recent_date" como parte de mi HQL. Me gusta esto:[Date] >= recent_date()
Creé un nuevo dialecto, heredé de MsSql2000Dialect y especificé el dialecto para mi configuración.
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();
Al llamarrecent_date()
Obtuve el siguiente error:System.Data.SqlClient.SqlException: 'recent_date' no es un nombre de función reconocido
Lo estoy usando en una declaración where para un mapeo HasMany como abajo.
HasMany(x => x.RecentValues)
.Access.CamelCaseField(Prefix.Underscore)
.Cascade.SaveUpdate()
.Where("Date >= recent_date()");
¿Que me estoy perdiendo aqui?