Пространственный тип Entity Framework Core SQL Server

Мне нужно работать с георафическими расстояниями.

я получил

public class Clinic { ... public double Latitude public double Longitud ... } 

Эти клиники находятся в базе данных SQL Server. Мне нужно вернуть их, упорядоченные по расстоянию до определенной точки. Для того, что я читал, Entity Framework Core не поддерживает DbGeography или что-то в этом роде для представления типа SQL Server:

 geography 

Я добавил в базу данных столбец с расчетной точкой географии каждой клиники

 UPDATE Clinics SET Geo = geography::Point(Clinics.Latitude, Clinics.Longitud,4326) 

Хорошо, знаю, что мне нужно вернуть их. SQL поддерживает это путем запросов

 DECLARE @p geography; SET @p = geography::Point(41,2,4326); SELECT * FROM Clinics c ORDER BY @p.STDistance(c.Geo); 

и Entity Framwork Core поддерживает запросы с использованием необработанного SQL.

 context.Clinics.FromSql("..query..") 

Дело в том, что, как говорится в документации FromSql, если данные, которые вы возвращаете, точно не соответствуют модели, она падает. Как и в C #, у меня нет DbGeography, которая представляет Geo, я не могу понять, как это решить. Спасибо за любую

ИЗМЕНИТЬ 1:

Получил его частично для работы со следующим:

  string rawSQL = @" DECLARE @p geography; SET @p = geography::Point(41,2,4326); SELECT c.Id, c.Name, c.Price, c.Quote, c.QuoteAuthor, c.QuoteSource, c.Description, c.Image, c.Latitude, c.Longitude, c.Category, c.CenterDistance, c.NumReviews, c.Stars FROM Clinics c ORDER BY @p.STDistance(c.Geo); "; query = query.FromSql(rawSQL); 

Так что я знаю, что получаю все атрибуты клиник, и это работает! Дело в том, что в клиниках есть связанный класс.

 public class Clinic { ... public double Latitude public double Longitud public Amenity amenity ... } 

Поэтому, когда я спрашиваю, мне нужно включить удобства по linq

 query = query.Include(c => c.ClinicAmenities).ThenInclude(ca => ca.Amenity); 

Умирает, потому что Orderby из raw sql приходит до включения, я считаю

Interesting Posts

Нет ошибок или результатов при выполнении простого запроса в базе данных SQL Server

Ожидание локального хоста, навсегда!

Выполнение результата динамического запроса с использованием хранимой процедуры

Строки SQL COUNT Результат в отдельных столбцах

sql-сервер, за исключением результатов хранимой процедуры

Производительность БД и типы данных

создание базы данных с динамическими полями

Создание и передача табличного значения в отдельной строке

Идентификация причин таймаута с помощью профилировщика SQL Server

Снижение влияния на нагрузку на сервер, вызванное длинными, но не приоритетными аддовыми запросами

ef core System.ArgumentException при попытке выполнить команды миграции

SQL. Почему я получаю эту ошибку при создании таблицы отчетов?

Должен ли я запускать F # в SqlClr?

Должен ли я использовать вложенный выбор или создать временную таблицу для этой ситуации в SQL?

ms access Ошибка GROUP BY

Давайте будем гением компьютера.