在Linq to NHibernate中,我试图在一定距离内返回业务。以下是我到目前为止的情况:
var query = from b in ActiveRecordLinq.AsQueryable<Business>()
where (3959 * Math.Acos(Math.Cos((Math.PI * coordinates.Latitude / 180)) * Math.Cos((Math.PI * b.Latitude / 180))
* Math.Cos((Math.PI * b.Longitude / 180) - (Math.PI * coordinates.Longitude / 180))
+ Math.Sin((Math.PI * coordinates.Latitude / 180)) * Math.Sin((Math.PI * b.Latitude / 180)))) <= radiusInMiles
orderby b.Name ascending
select b;
return query.ToList();
不幸的是,似乎Linq到NHibernate不支持C#Math类,所以它给了我以下错误:
方法Cos未实施
我如何解决这个问题?
谢谢! 贾斯汀
答案 0 :(得分:3)
你可以做三件事:
当您选择选项1时,您会让一些人感到高兴。
答案 1 :(得分:1)
您不能在服务器端Linq查询中使用任意.Net函数。
您可以将服务器端功能与HQL一起使用。