J'essaie d'obtenir des entreprises dans un certain nombre de miles d'un utilisateur, en utilisant une formule pour obtenir la distance entre le lat/long de l'entreprise et le lat/long de la utilisateur. Voici le code:Calcul MonoRail ActiveRecord/NHibernate dans where clause
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));
Le problème est que la méthode Restrictions.Le de ActiveRecord/NHibernate attend un nom de propriété pour le premier paramètre, donc je ne peux pas mettre une formule là-dedans. Comment ferais-je quelque chose comme ça?
Merci! Justin
Merci, malheureusement Restrictions.Sql n'existe pas, peut-être était juste dans les anciennes versions? – Justin
@ Justin: désolé, il est en fait appelé Expression.Sql –
Cela a fonctionné, merci! Maintenant, je peux supprimer le sql dynamique méchant ... – Justin