下面的存储过程检索给定纬度和经度的最近500个地址。许多应用程序都使用它,它也是有用的查询之一。
可以用Entity- to -SQL重写吗?如果是这样的话,你能给我指出正确的方向吗(我对实体到SQL并不陌生)?提前谢谢。
DECLARE @CntXAxis FLOAT
DECLARE @CntYAxis FLOAT
DECLARE @CntZAxis FLOAT
SET @CntXAxis = COS(RADIANS(-118.4104684)) * COS(RADIANS(34.1030032))
SET @CntYAxis = COS(RADIANS(-118.4104684)) * SIN(RADIANS(34.1030032))
SET @CntZAxis = SIN(RADIANS(-118.4104684))
SELECT
500 *,
ProxDistance = 3961 * ACOS( dbo.XAxis(LAT, LONG)*@CntXAxis + dbo.YAxis(LAT, LONG)*@CntYAxis + dbo.ZAxis(LAT)*@CntZAxis)
FROM
tbl_ProviderLocation
WHERE
(3961 * ACOS( dbo.XAxis(LAT, LONG)*@CntXAxis + dbo.YAxis(LAT, LONG)*@CntYAxis + dbo.ZAxis(LAT)*@CntZAxis) <= 10)
ORDER BY
ProxDistance ASC发布于 2011-06-04 20:50:13
如果您使用的是Ms Sql Server,则可以将SqlClient函数与实体SQL一起使用
http://msdn.microsoft.com/en-us/library/bb399586.aspx
根据this的说法,这些函数也可用于LINQ查询。我找不到一个例子,但它看起来很简单。
var qry = from r in mytable
select new {Acos = SqlFunctions.ACos(r.mycloumn)};https://stackoverflow.com/questions/6232971
复制相似问题