Calcolo monorotaia ActiveRecord / NHibernate in cui la clausola
-
02-10-2019 - |
Domanda
Sto cercando di ottenere le imprese entro un certo numero di miglia di un utente, utilizzando una formula per ottenere la distanza tra la latitudine / longitudine del business e la latitudine / longitudine dell'utente. Ecco il codice:
var criteria = DetachedCriteria.For<Core.Models.Business>(); criteria.Add(Restrictions.Le(String.Format(@"(3959*acos(cos(radians({0}))*cos(radians(Latitude))*cos(radians(Longitude)-radians({1}))
+sin(radians({0}))*sin(radians(Latitude))))", coordinates.Latitude, coordinates.Longitude), radiusInMiles));
Il problema è che il metodo Restrictions.Le di ActiveRecord / NHibernate si aspetta un nome di proprietà per il primo parametro, quindi non posso mettere una formula in là. Come potrei fare qualcosa di simile?
Grazie! Justin
Soluzione
Provare a usare Expression.Sql
. Un paio di esempi:
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow