gpt4 book ai didi

c# - Entity Framework 距离查询

转载 作者:行者123 更新时间:2023-11-30 17:33:23 26 4
gpt4 key购买 nike

我们在 SQL Server 中有一个表,其中包含 LatitudeLongitude 列。我们想使用以下查询查询距特定点最近的位置:

SELECT TOP (1) 
[ID], [Lat], [Lng],
geography::Point(32, 34, 4326).STDistance(geography::Point([Lat], [Lng], 4326)) as Dist
FROM
[Area]
ORDER BY
Dist

有没有办法使用 EF 来完成,并让 SQL Server 进行距离计算?

谢谢

最佳答案

我想出的最简单的解决方案是只使用原始查询,EF Core(我假设您正在使用它)将完成剩下的工作。

var blogs = context.Blogs
.FromSql("SELECT * FROM dbo.Blogs")
.ToList();

有关原始查询的更多信息,请点击此处 https://learn.microsoft.com/en-us/ef/core/querying/raw-sql

此外,正如您在问题的评论中提到的那样,您可能希望将 WHERE 添加到查询中以使其运行得更快。像这样

WHERE [Latitude] < TopLatBound 
AND [Latitude] > BottomLatBound
AND [Longitude] > LeftLngBound
AND [Longitude] < RightLngBound

您可以按照此处所述将所需的最大距离转换为纬度和经度来计算界限 https://gis.stackexchange.com/questions/142326/calculating-longitude-length-in-miles

关于c# - Entity Framework 距离查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44128676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com