SQL Server EF Core Sağlayıcısında Uzamsal Veriler
Bu sayfa, Microsoft SQL Server veritabanı sağlayıcısıyla uzamsal verileri kullanma hakkında ek bilgiler içerir. EF Core'da uzamsal verileri kullanma hakkında genel bilgi için ana Uzamsal Veriler belgelerine bakın.
Coğrafya veya geometri
Varsayılan olarak, uzamsal özellikler SQL Server'daki sütunlara geography
eşlenir. kullanmak geometry
için, modelinizdeki sütun türünü yapılandırın.
Coğrafya çokgen halkaları
Sütun türünü kullanırken geography
, SQL Server dış halkaya (veya kabuğa) ve iç halkalara (veya deliklere) ek gereksinimler uygular. Dış halka saat yönünün tersine ve iç halkalar saat yönünde yönlendirilmelidir. NetTopologySuite (NTS), veritabanına değer göndermeden önce bunu doğrular.
FullGlobe
SQL Server, sütun türü kullanılırken tam küreyi temsil eden standart olmayan bir geometri türüne geography
sahiptir. Ayrıca, çokgenleri tam küreye göre (dış halka olmadan) temsil etmenin bir yolu vardır. Bunların hiçbiri NTS tarafından desteklenmez.
Uyarı
Buna dayalı FullGlobe ve çokgenler NTS tarafından desteklenmez.
Eğriler
Ana Uzamsal Veri belgelerinde belirtildiği gibi, NTS şu anda eğrileri temsil edemez. Başka bir deyişle, EF Core'da kullanmadan önce STCurveToLine yöntemini kullanarak CircularString, CompoundCurve ve CurePolygon değerlerini dönüştürmeniz gerekir.
Uyarı
CircularString, CompoundCurve ve CurePolygon NTS tarafından desteklenmez.
Uzamsal işlev eşlemeleri
Bu tabloda hangi NTS üyelerinin hangi SQL işlevlerine çevrildiği gösterilir. Çevirilerin, sütunun coğrafya veya geometri türünde olmasına bağlı olarak farklılık gösterdiğini unutmayın.
.NET | SQL (coğrafya) | SQL (geometri) | eklendi |
---|---|---|---|
EF. Functions.CurveToLine(geometri) | @geometry.STCurveToLine() | @geometry.STCurveToLine() | EF Core 7.0 |
Geometri. Alan | @geometry.STArea() | @geometry.STArea() | |
Geometri. AsBinary() | @geometry.STAsBinary() | @geometry.STAsBinary() | |
Geometri. AsText() | @geometry.AsTextZM() | @geometry.AsTextZM() | |
Geometri. Sınır | @geometry.STBoundary() | ||
Geometri. Arabellek(uzaklık) | @geometry.STBuffer(@distance) | @geometry.STBuffer(@distance) | |
Geometri. Centroid | @geometry.STCentroid() | ||
Geometri. contains(g) | @geometry.STContains(@g) | @geometry.STContains(@g) | |
Geometri. ConvexHull() | @geometry.STConvexHull() | @geometry.STConvexHull() | |
Geometri. Çaprazlar(g) | @geometry.STCrosses(@g) | ||
Geometri. Fark (diğer) | @geometry.STDifference(@other) | @geometry.STDifference(@other) | |
Geometri. Boyut | @geometry.STDimension() | @geometry.STDimension() | |
Geometri. Kopuk(g) | @geometry.STDisjoint(@g) | @geometry.STDisjoint(@g) | |
Geometri. Uzaklık(g) | @geometry.STDistance(@g) | @geometry.STDistance(@g) | |
Geometri. Zarf | @geometry.STEnvelope() | ||
Geometri. EqualsTopologically(g) | @geometry.STEquals(@g) | @geometry.STEquals(@g) | |
Geometri. GeometryType | @geometry.STGeometryType() | @geometry.STGeometryType() | |
Geometri. GetGeometryN(n) | @geometry.STGeometryN(@n + 1) | @geometry.STGeometryN(@n + 1) | |
Geometri. İç Mekan Noktası | @geometry.STPointOnSurface() | ||
Geometri. Kesişim (diğer) | @geometry.STIntersection(@other) | @geometry.STIntersection(@other) | |
Geometri. Kesişimler(g) | @geometry.STIntersects(@g) | @geometry.STIntersects(@g) | |
Geometri. Isempty | @geometry.STIsEmpty() | @geometry.STIsEmpty() | |
Geometri. IsSimple | @geometry.STIsSimple() | ||
Geometri. Isvalid | @geometry.STIsValid() | @geometry.STIsValid() | |
Geometri. IsWithinDistance(geom, uzaklık) | @geometry.STDistance(@geom)<= @distance | @geometry.STDistance(@geom)<= @distance | |
Geometri. Uzun -luğu | @geometry.STLength() | @geometry.STLength() | |
Geometri. NumGeometries | @geometry.STNumGeometries() | @geometry.STNumGeometries() | |
Geometri. NumPoints | @geometry.STNumPoints() | @geometry.STNumPoints() | |
Geometri. OgcGeometryType | CASE @geometry.STGeometryType() WHEN N'Point' THEN 1 ... Son -unda | CASE @geometry.STGeometryType() WHEN N'Point' THEN 1 ... Son -unda | |
Geometri. Örtüşmeler(g) | @geometry.STOverlaps(@g) | @geometry.STOverlaps(@g) | |
Geometri. PointOnSurface | @geometry.STPointOnSurface() | ||
Geometri. Relate(g, intersectionPattern) | @geometry.STRelate(@g, @intersectionPattern) | ||
Geometri. SRID | @geometry.STSrid | @geometry.STSrid | |
Geometri. Simetrik Fark (diğer) | @geometry.STSymDifference(@other) | @geometry.STSymDifference(@other) | |
Geometri. ToBinary() | @geometry.STAsBinary() | @geometry.STAsBinary() | |
Geometri. ToText() | @geometry.AsTextZM() | @geometry.AsTextZM() | |
Geometri. Dokunmalar(g) | @geometry.STTouches(@g) | ||
Geometri. Birleşim (diğer) | @geometry.STUnion(@other) | @geometry.STUnion(@other) | |
Geometri. İçinde(g) | @geometry.STWithin(@g) | @geometry.STWithin(@g) | |
geometryCollection[i] | @geometryCollection.STGeometryN(@i + 1) | @geometryCollection.STGeometryN(@i + 1) | |
geometryCollection.Count | @geometryCollection.STNumGeometries() | @geometryCollection.STNumGeometries() | |
lineString.Count | @lineString.STNumPoints() | @lineString.STNumPoints() | |
lineString.EndPoint | @lineString.STEndPoint() | @lineString.STEndPoint() | |
lineString.GetPointN(n) | @lineString.STPointN(@n + 1) | @lineString.STPointN(@n + 1) | |
lineString.IsClosed | @lineString.STIsClosed() | @lineString.STIsClosed() | |
lineString.IsRing | @lineString.IsRing() | ||
lineString.StartPoint | @lineString.STStartPoint() | @lineString.STStartPoint() | |
multiLineString.IsClosed | @multiLineString.STIsClosed() | @multiLineString.STIsClosed() | |
Nokta. M | @point.M | @point.M | |
Nokta. X | @point.Long | @point.STX | |
Nokta. Y | @point.Lat | @point.STY | |
Nokta. Z | @point.Z | @point.Z | |
Çokgen. DışTan Alma | @polygon.RingN(1) | @polygon.STExteriorRing() | |
Çokgen. GetInteriorRingN(n) | @polygon.RingN(@n + 2) | @polygon.STInteriorRingN(@n + 1) | |
Çokgen. NumInteriorRings | @polygon.NumRings() - 1 | @polygon.STNumInteriorRing() |
Toplama işlevleri
.NET | SQL | eklendi |
---|---|---|
GeometryCombiner.Combine(group. Select(x => x.Property)) | CollectionAggregate(Özellik) | EF Core 7.0 |
ConvexHull.Create(grup. Select(x => x.Property)) | ConvexHullAggregate(Özellik) | EF Core 7.0 |
UnaryUnionOp.Union(group. Select(x => x.Property)) | UnionAggregate(Özellik) | EF Core 7.0 |
EnvelopeCombiner.CombineAsGeometry(grup. Select(x => x.Property)) | EnvelopeAggregate(Özellik) | EF Core 7.0 |