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
感谢,可惜Restrictions.Sql不存在,也许这只是在旧版本? – Justin 2010-07-05 22:46:41
@Justin:对不起,它实际上叫Expression.Sql – 2010-07-06 00:11:27
工作,谢谢!现在我可以删除令人讨厌的动态SQL ... – Justin 2010-07-09 00:22:56