Jeorafik uzaklıklarla çalışmam gerekiyor. Uzamsal tip Entity Framework Çekirdek SQL Server
Benpublic class Clinic
{
...
public double Latitude
public double Longitud
...
}
Bu klinikler SQL Server veritabanında vardır aldık. Onlara belli bir noktaya kadar sipariş vermem gerekiyor.
geography
Her klinikte
hesaplanan coğrafya noktası ile veritabanına bir sütun ekledi: ne okumak için , Varlık Çerçeve Çekirdek SQL Server tipini temsil konusunda hiçbir DbGeography için destek veya buna benzer bir şey vardırUPDATE Clinics SET Geo = geography::Point(Clinics.Latitude, Clinics.Longitud,4326)
Tamam, bunları sipariş vermem gerektiğini biliyorum. SQL, bu soruyu
DECLARE @p geography;
SET @p = geography::Point(41,2,4326);
SELECT * FROM Clinics c ORDER BY @p.STDistance(c.Geo);
sorgulayarak destekler ve Entity Framework Çekirdeği, işlenmeyi SQL ile sorgulamayı destekler. FromSql dokümantasyonu dediği gibi iadelerinizde veri tam olarak çöküyor modeli aynı değilse
context.Clinics.FromSql("..query..")
Şey, vardır. C# 'da olduğu gibi Coğrafi temsil eden bir DbGeografisi olamaz. Bunu nasıl çözeceğimi anlayamıyorum.
edit 1:
kısmen aşağıdaki çalışmak lazım:
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);
yüzden şimdi Klinik tüm özelliklerini almak ve işe yarıyor! Şey inanıyorum dahil önce orderBy ham sql geliyor çünkü klinikler ben bir sorgu çalıştırdığınızda
public class Clinic
{
...
public double Latitude
public double Longitud
public Amenity amenity
...
}
yüzden linq tarafından
query = query.Include(c => c.ClinicAmenities).ThenInclude(ca => ca.Amenity);
Kalıpları olanaklar bulunmaktadır gereken ilgili sınıf imkanlar vardır, olduğu
gibi
şey bu anlamaya mı? "ThenIncluded" Amenitesini kullanırken bir hata mesajı aldınız mı? – influent