2010-07-05 17 views
0

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

Répondre