Monorail Active / NHibernate Berechnung in where-Klausel
-
02-10-2019 - |
Frage
Ich versuche Unternehmen innerhalb einer bestimmten Anzahl von Meilen von einem Benutzer zu erhalten, eine Formel mit dem Abstand zwischen dem lat erhalten / lang des Unternehmens und der lat / long des Benutzers. Hier ist der Code:
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));
Das Problem ist, dass Activerecord / NHibernate Restrictions.Le Methode einen Eigenschaftsnamen für den ersten Parameter erwartet, damit ich nicht eine Formel in dort setzen kann. Wie würde ich so etwas tun?
Danke! Justin
Lösung
Versuchen Expression.Sql
verwenden. Ein paar Beispiele:
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow