2010-07-05 105 views
0

我试图让一个用户在一定的英里数内的企业,使用一个公式来获得业务的拉特/长和纬度/纬度之间的距离用户。下面是代码:MonoRail ActiveRecord/NHibernate计算在哪里条款

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

的问题是,ActiveRecord的/ NHibernate的Restrictions.Le方法需要第一个参数属性名,所以我不能把一个公式在那里。我会如何做这样的事情?

谢谢! Justin

回答