Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Filtro Nibernate in base all'output della funzione definita dall'utente

È possibile utilizzare l'espressione SQL nelle query di ibernazione. Supponendo che tu abbia mappato un Store digita potresti scrivere la seguente query:

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