Térbeli adatok az SQL Server EF Core-szolgáltatójában

Ez a lap további információkat tartalmaz a térbeli adatok Microsoft SQL Server-adatbázis-szolgáltatóval való használatáról. A térbeli adatok EF Core-ban való használatával kapcsolatos általános információkért tekintse meg a térbeli adatok fő dokumentációját.

Földrajzi hely vagy geometria

Alapértelmezés szerint a térbeli tulajdonságok az SQL Server oszlopaihoz geography vannak leképezve. A geometry használatához konfigurálja az oszloptípust a modellben.

Földrajzi sokszögkarikák

Az oszloptípus használatakor az geography SQL Server további követelményeket ír elő a külső gyűrűre (vagy héjra) és a belső gyűrűkre (vagy lyukakra). A külső gyűrűnek az óramutató járásával ellentétes irányban kell lennie, a belső gyűrűknek pedig az óramutató járásával megegyező irányban kell lenniük. A NetTopologySuite (NTS) ezt ellenőrzi, mielőtt értékeket küld az adatbázisba.

FullGlobe

Az SQL Server nem szabványos geometriai típussal rendelkezik, amely az oszloptípus használatakor a teljes földgömböt ábrázolja geography . Arra is van mód, hogy sokszögeket reprezentáljon a teljes glóbusz alapján, külső gyűrűk nélkül. Ezek közül egyiket sem támogatja az NTS.

Figyelmeztetés

Az NTS nem támogatja a FullGlobe-t és az azon alapuló sokszögeket.

Görbék

A fő téradat-dokumentációban leírtak szerint az NTS jelenleg nem képes görbéket jelölni. Ez azt jelenti, hogy az EF Core-ban való használat előtt át kell alakítania a CircularString, a CompoundCurve és a CurePolygon értékeket az STCurveToLine metódussal.

Figyelmeztetés

Az NTS nem támogatja a CircularString, a CompoundCurve és a CurePolygon szolgáltatást.

Térbeli függvényleképezések

Ez a táblázat azt mutatja be, hogy mely NTS-tagok lesznek lefordítva az SQL-függvényekre. Vegye figyelembe, hogy a fordítások attól függően változnak, hogy az oszlop típusa földrajzi vagy geometriai.

.NET SQL (földrajzi hely) SQL (geometria) Hozzáadva
EF. Functions.CurveToLine(geometria) @geometry.STCurveToLine() @geometry.STCurveToLine() EF Core 7.0
Geometria. Terület @geometry.STArea() @geometry.STArea()
geometry.AsBinary() @geometry.STAsBinary() @geometry.STAsBinary()
geometry.AsText() @geometry.AsTextZM() @geometry.AsTextZM()
geometria.Határ @geometry.STBoundary()
Geometria. Puffer(távolság) @geometry.STBuffer(@distance) @geometry.STBuffer(@distance)
Geometria. Centroid @geometry.STCentroid()
Geometria. Tartalmazza(g) @geometry.STContains(@g) @geometry.STContains(@g)
Geometria. ConvexHull() @geometry.STConvexHull() @geometry.STConvexHull()
Geometria. Kereszt(g) @geometry.STCrosses(@g)
Geometria. Különbség(egyéb) @geometry.STDifference(@other) @geometry.STDifference(@other)
Geometria.Dimenzió @geometry.STDimension() @geometry.STDimension()
Geometria. Szétválasztás(g) @geometry.STDisjoint(@g) @geometry.STDisjoint(@g)
Geometria. Távolság(g) @geometry.STDistance(@g) @geometry.STDistance(@g)
Geometria. Boríték @geometry.STEnvelope()
Geometria. EqualsTopologically(g) @geometry.STEquals(@g) @geometry.STEquals(@g)
Geometria.GeometriaTípus @geometry.STGeometryType() @geometry.STGeometryType()
Geometria.GetGeometryN(n) @geometry.STGeometryN(@n + 1) @geometry.STGeometryN(@n + 1)
Geometria. InteriorPoint @geometry.STPointOnSurface()
Geometria. Metszet(egyéb) @geometry.STIntersection(@other) @geometry.STIntersection(@other)
Geometria. Metszet(g) @geometry.STIntersects(@g) @geometry.STIntersects(@g)
Geometria. IsEmpty @geometry.STIsEmpty() @geometry.STIsEmpty()
geometry.IsSimple @geometry.STIsSimple()
Geometria. IsValid @geometry.STIsValid() @geometry.STIsValid()
Geometria. IsWithinDistance(geom, távolság) @geometry.STDistance(@geom) <= @distance @geometry.STDistance(@geom) <= @distance
GeometriaHossz @geometry.STLength() @geometry.STLength()
Geometria. NumGeometries @geometry.STNumGeometries() @geometry.STNumGeometries()
Geometria. NumPoints @geometry.STNumPoints() @geometry.STNumPoints()
Geometria OgcGeometryType CASE @geometry.STGeometryType() WHEN N'Point' THEN 1 ... END CASE @geometry.STGeometryType() WHEN N'Point' THEN 1 ... END
Geometria. Átfedések(g) @geometry.STOverlaps(@g) @geometry.STOverlaps(@g)
Geometria. PointOnSurface @geometry.STPointOnSurface()
Geometria.Kapcsolat(g, metszetMinta) @geometry.STRelate(@g, @intersectionPattern)
Geometria. SRID @geometry.STSrid @geometry.STSrid
Geometria.SzimmetrikusDifferencia(másik) @geometry.STSymDifference(@other) @geometry.STSymDifference(@other)
geometry.ToBinary() @geometry.STAsBinary() @geometry.STAsBinary()
geometry.ToText() @geometry.AsTextZM() @geometry.AsTextZM()
Geometria. Érintések(g) @geometry.STTouches(@g)
Geometria. Union(egyéb) @geometry.STUnion(@other) @geometry.STUnion(@other)
Geometria. Belső(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()
Pont. M @point.M @point.M
Pont. X @point.Long @point.STX
pont Y @point.Lat @point.STY
Pont Z @point.Z @point.Z
Sokszög. Külső gyűrű @polygon.RingN(1) @polygon.STExteriorRing()
Sokszög.GetInteriorRingN(n) @polygon.RingN(@n + 2) @polygon.STInteriorRingN(@n + 1)
Sokszög.NumInteriorRings (belső gyűrűk száma) @polygon.NumRings() - 1 @polygon.STNumInteriorRing()

Összesítő függvények

.NET SQL Hozzáadva
GeometryCombiner.Combine(group.Select(x => x.Property)) CollectionAggregate(Tulajdonság) EF Core 7.0
ConvexHull.Create(csoport.Select(x => x.Property)) ConvexHullAggregate(tulajdonság) EF Core 7.0
UnaryUnionOp.Union(csoport.Select(x => x.Property)) UnionAggregate(Tulajdonság) EF Core 7.0
EnvelopeCombiner.CombineAsGeometry(group.Select(x => x.Property)) EnvelopeAggregate(tulajdonság) EF Core 7.0

További erőforrások