Entity Framework distance query

Nous avons une table dans SQL Server qui contient des colonnes Latitude et Longitude . Nous voulons interroger l'location le plus proche d'un point spécifique en utilisant la requête:

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

Y at-il un moyen de le faire en utilisant EF, et laisser le SQL Server faire le calcul de la distance?

Merci

La solution la plus simple que j'ai trouvée est juste en utilisant une requête brute et EF Core (je suppose que vous l'utilisez) fera le rest.

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

Plus d'informations sur les requêtes brutes ici https://docs.microsoft.com/en-us/ef/core/querying/raw-sql

Aussi, comme mentionné dans les commentaires à votre question, vous voulez append WHERE à votre requête pour le faire tourner plus vite. Quelque chose comme ça

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

Vous pouvez calculer lié en convertissant la distance maximale désirée en lat et long comme décrit ici https://gis.stackexchange.com/questions/142326/calculating-longitude-length-in-miles