IRI.Maptor.Infrastructure.EfCore.SqlServer
3.0.0
dotnet add package IRI.Maptor.Infrastructure.EfCore.SqlServer --version 3.0.0
NuGet\Install-Package IRI.Maptor.Infrastructure.EfCore.SqlServer -Version 3.0.0
<PackageReference Include="IRI.Maptor.Infrastructure.EfCore.SqlServer" Version="3.0.0" />
<PackageVersion Include="IRI.Maptor.Infrastructure.EfCore.SqlServer" Version="3.0.0" />
<PackageReference Include="IRI.Maptor.Infrastructure.EfCore.SqlServer" />
paket add IRI.Maptor.Infrastructure.EfCore.SqlServer --version 3.0.0
#r "nuget: IRI.Maptor.Infrastructure.EfCore.SqlServer, 3.0.0"
#:package IRI.Maptor.Infrastructure.EfCore.SqlServer@3.0.0
#addin nuget:?package=IRI.Maptor.Infrastructure.EfCore.SqlServer&version=3.0.0
#tool nuget:?package=IRI.Maptor.Infrastructure.EfCore.SqlServer&version=3.0.0
IRI.Maptor.Infrastructure.EfCore.SqlServer
EF Core support for reading SQL Server spatial columns directly into IRI.Maptor Geometry<Point>. It is a
drop-in replacement for UseNetTopologySuite() and removes the NetTopologySuite and Microsoft.SqlServer.Types
dependencies from applications. Geometry is read and written in the SQL Server native binary (MS-SSCLRT) format by
IRI.Maptor.Core.Spatial's SqlServerSpatialNativeBinary serializer, so no NTS objects or WKB conversion are
involved.
The provider-neutral parts (MaptorGeometryValueComparer, ConfigureMaptorGeometry(), IsGeography() /
IsGeometry()) live in IRI.Maptor.Infrastructure.EfCore, which
this package references. The PostgreSQL/PostGIS counterpart is
IRI.Maptor.Infrastructure.EfCore.PostgreSql.
Installation
dotnet add package IRI.Maptor.Infrastructure.EfCore.SqlServer
Features
- A provider plugin for the SQL Server EF Core provider:
UseMaptor()replacesUseNetTopologySuite() - Reads and writes
geometryandgeographycolumns (points, lines, polygons, multi-* and geometry collections; 2D) SqlServerMaptorGeometryTypeMapping— theRelationalTypeMappingforGeometry<Point>SqlServerSpatialPassThroughTypeMapping— a pass-through mapping for spatial columns in models compiled from migration snapshots and designer files (columns typedSqlBytes, or the legacy NetTopologySuiteGeometry), sodotnet ef migrations add/removekeep working after switching fromUseNetTopologySuite()SqlServerMaptorGeometryTypeMappingSourcePlugin/SqlServerMaptorGeometryOptionsExtension— provider wiring
Usage
Enable the provider plugin where you configure the context (replaces x.UseNetTopologySuite()):
using IRI.Maptor.Infrastructure.EfCore.SqlServer.Extensions;
options.UseSqlServer(connectionString, x => x.UseMaptor());
Declare geometry properties on your entities as Geometry<Point>:
using IRI.Maptor.Core.Spatial.Primitives;
using IRI.Maptor.Core.Common.Primitives;
public Geometry<Point> SHAPE { get; set; }
To choose the column type, either set a default for all geometry properties in ConfigureConventions:
using IRI.Maptor.Infrastructure.EfCore.Extensions;
protected override void ConfigureConventions(ModelConfigurationBuilder configurationBuilder)
=> configurationBuilder.ConfigureMaptorGeometry(); // maps Geometry<Point> -> geography
or set it per property in OnModelCreating:
entity.Property(e => e.SHAPE).IsGeography(); // or .IsGeometry()
If no column type is configured, Geometry<Point> defaults to geography.
Limitations
- Z/M values are rejected with a clear error, so store 2D data. (The PostgreSQL plugin drops them instead.)
- Server-side spatial operations go through raw SQL (
FromSql/FromSqlRaw, e.g.SHAPE.STIntersects(...)). LINQ spatial method translation is intentionally not provided.
NuGet package · Report issues · Back to IRI.Maptor.Infrastructure
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- IRI.Maptor.Infrastructure.EfCore (>= 3.0.0)
- Microsoft.EntityFrameworkCore.SqlServer (>= 9.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.0.0 | 80 | 11/10/2026 |
| 3.0.0-alpha | 103 | 10/29/2026 |