Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Deze pagina bevat aanvullende informatie over het gebruik van ruimtelijke gegevens met de Microsoft SQL Server-databaseprovider. Zie de belangrijkste documentatie over ruimtelijke gegevens voor algemene informatie over het gebruik van ruimtelijke gegevens in EF Core.
Geografie of geometrie
Ruimtelijke eigenschappen worden standaard toegewezen aan geography kolommen in SQL Server. Als u dit wilt gebruiken geometry, configureert u het kolomtype in uw model.
Geografie veelhoekringen
Wanneer u het geography kolomtype gebruikt, legt SQL Server aanvullende vereisten op voor de buitenring (of shell) en binnenste ringen (of gaten). De buitenring moet linksom georiënteerd zijn en de binnenringen rechtsom.
NetTopologySuite (NTS) valideert dit voordat waarden naar de database worden verzonden.
FullGlobe
SQL Server heeft een niet-standaard geometrietype dat de volledige wereldbol vertegenwoordigt bij het gebruik van het geography kolomtype. Het heeft ook een manier om veelhoeken te vertegenwoordigen op basis van de volledige wereldbol (zonder een buitenring). Geen van deze worden ondersteund door NTS.
Waarschuwing
FullGlobe en veelhoeken die erop zijn gebaseerd, worden niet ondersteund door NTS.
Curven
Zoals vermeld in de belangrijkste documentatie voor ruimtelijke gegevens , kan NTS momenteel geen curven vertegenwoordigen. Dit betekent dat u de waarden CircularString, CompoundCurve en CurePolygon moet transformeren met behulp van de methode STCurveToLine voordat u ze in EF Core gebruikt.
Waarschuwing
CircularString, CompoundCurve en CurePolygon worden niet ondersteund door NTS.
Ruimtelijke functietoewijzingen
In deze tabel ziet u welke NTS-leden worden omgezet in welke SQL-functies. Houd er rekening mee dat de vertalingen variëren, afhankelijk van of de kolom van het type geografie of geometrie is.
| .NET | SQL (geografie) | SQL (geometrie) | Toegevoegd in |
|---|---|---|---|
| EF. Functions.CurveToLine(geometrie) | @geometry.STCurveToLine() | @geometry.STCurveToLine() | EF Core 7.0 |
| Geometrie. Gebied | @geometry.STArea() | @geometry.STArea() | |
| Geometrie. AsBinary() | @geometry.STAsBinary() | @geometry.STAsBinary() | |
| Geometrie.AsText() | @geometry.AsTextZM() | @geometry.AsTextZM() | |
| Geometrie. Grens | @geometry.STBoundary() | ||
| Geometrie. Buffer (afstand) | @geometry.STBuffer(@distance) | @geometry.STBuffer(@distance) | |
| Geometrie Zwaartepunt | @geometry.STCentroid() | ||
| Geometrie. Contains(g) | @geometry.STContains(@g) | @geometry.STContains(@g) | |
| Geometrie. ConvexHull() | @geometry.STConvexHull() | @geometry.STConvexHull() | |
| Geometrie. Kruisen(g) | @geometry.STCrosses(@g) | ||
| Geometrie. Verschil (overig) | @geometry.STDifference(@other) | @geometry.STDifference(@other) | |
| Geometrie. Dimensie | @geometry.STDimension() | @geometry.STDimension() | |
| Geometrie. Niet-aaneengesloten(g) | @geometry.STDisjoint(@g) | @geometry.STDisjoint(@g) | |
| Geometrie. Afstand(g) | @geometry.STDistance(@g) | @geometry.STDistance(@g) | |
| Geometrie. Omhulsel | @geometry.STEnvelope() | ||
| Geometrie. Is gelijk aanTopologisch(g) | @geometry.STEquals(@g) | @geometry.STEquals(@g) | |
| Geometrie. GeometryType | @geometry.STGeometryType() | @geometry.STGeometryType() | |
| geometry.GetGeometryN(n) | @geometry.STGeometryN(@n + 1) | @geometry.STGeometryN(@n + 1) | |
| Geometrie. InteriorPoint | @geometry.STPointOnSurface() | ||
| Geometrie. Snijpunt (overig) | @geometry.STIntersection(@other) | @geometry.STIntersection(@other) | |
| Geometrie. Kruisingen(g) | @geometry.STIntersects(@g) | @geometry.STIntersects(@g) | |
| Geometrie. Isempty | @geometry.STIsEmpty() | @geometry.STIsEmpty() | |
| Geometrie.IsSimple | @geometry.STIsSimple() | ||
| Geometrie. IsValid | @geometry.STIsValid() | @geometry.STIsValid() | |
| Geometrie. IsWithinDistance(geom, afstand) | @geometry.STDistance(@geom) <= @distance | @geometry.STDistance(@geom) <= @distance | |
| Geometrie.Lengte | @geometry.STLength() | @geometry.STLength() | |
| Geometrie. NumGeometrieën | @geometry.STNumGeometries() | @geometry.STNumGeometries() | |
| Geometrie. NumPoints | @geometry.STNumPoints() | @geometry.STNumPoints() | |
| Geometrie.OgcGeometryType | CASE @geometry.STGeometryType() WHEN N'Point' THEN 1 ... EINDE | CASE @geometry.STGeometryType() WHEN N'Point' THEN 1 ... END | |
| Geometrie. Overlappingen(g) | @geometry.STOverlaps(@g) | @geometry.STOverlaps(@g) | |
| Geometrie. PointOnSurface | @geometry.STPointOnSurface() | ||
| Geometrie. Relate(g, intersectionPattern) | @geometry.STRelate(@g, @intersectionPattern) | ||
| Geometrie. SRID | @geometry.STSrid | @geometry.STSrid | |
| Geometrie.SymmetricDifference(other) | @geometry.STSymDifference(@other) | @geometry.STSymDifference(@other) | |
| Geometrie. ToBinary() | @geometry.STAsBinary() | @geometry.STAsBinary() | |
| geometry.ToText() | @geometry.AsTextZM() | @geometry.AsTextZM() | |
| Geometrie. Aanrakingen (g) | @geometry.STTouches(@g) | ||
| geometrie.verenig(andere) | @geometry.STUnion(@other) | @geometry.STUnion(@other) | |
| Geometrie. Binnen(g) | @geometry.STWithin(@g) | @geometry.STWithin(@g) | |
| geometryCollection[i] | @geometryCollection.STGeometryN(@i + 1) | @geometryCollection.STGeometryN(@i + 1) | |
| geometryCollectie.Aantal | @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() | |
| Punt. M | @point.M | @point.M | |
| Punt. X | @point.Long | @point.STX | |
| Punt. Y | @point.Lat | @point.STY | |
| Punt. Z | @point.Z | @point.Z | |
| polygoon.Buitenring | @polygon.RingN(1) | @polygon.STExteriorRing() | |
| polygon.GetInteriorRingN(n) | @polygon.RingN(@n + 2) | @polygon.STInteriorRingN(@n + 1) | |
| Veelhoek. NumInteriorRings | @polygon.NumRings() - 1 | @polygon.STNumInteriorRing() |
Gecompileerde functies
| .NET | SQL | Toegevoegd in |
|---|---|---|
| GeometryCombiner.Combine(groep.Select(x => x.Property)) | CollectionAggregate(Eigenschap) | EF Core 7.0 |
| ConvexHull.Create(groep.Select(x => x.Property)) | ConvexHullAggregate(eigenschap) | EF Core 7.0 |
| UnaryUnionOp.Union(groep.Select(x => x.Property)) | UnionAggregate(eigenschap) | EF Core 7.0 |
| EnvelopeCombiner.CombineAsGeometry(groep). Select(x => x.Property)) | EnvelopeAggregate(eigenschap) | EF Core 7.0 |