Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Nhibernate-Filterung nach benutzerdefinierter Funktionsausgabe

Sie könnten SQL-Ausdrücke in Ihren Ruhezustandsabfragen verwenden. Angenommen, Sie haben einen Store zugeordnet type könnten Sie die folgende Abfrage schreiben:

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>();