Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Filtrage Nhibernate par sortie de fonction définie par l'utilisateur

Vous pouvez utiliser une expression SQL dans vos requêtes d'hibernation. En supposant que vous avez mappé un Store type, vous pourriez écrire la requête suivante :

var result = session
    .CreateCriteria<Store>()
    .Add(Expression.Sql(
        "dbo.CalculateDistance({alias}.Latitude, {alias}.Longitude, ?, ?) < ?",
        new object[] { 
            -118.4104684d, 
            34.1030032d, 
            100 
        },
        new IType[] { 
            NHibernateUtil.Double, 
            NHibernateUtil.Double, 
            NHibernateUtil.Int32 
        }
    ))
    .List<Store>();