See the version list below for details.
dotnet add package dotMorten.Microsoft.SqlServer.Types --version 1.2.0
NuGet\Install-Package dotMorten.Microsoft.SqlServer.Types -Version 1.2.0
<PackageReference Include="dotMorten.Microsoft.SqlServer.Types" Version="1.2.0" />
paket add dotMorten.Microsoft.SqlServer.Types --version 1.2.0
#r "nuget: dotMorten.Microsoft.SqlServer.Types, 1.2.0"
// Install dotMorten.Microsoft.SqlServer.Types as a Cake Addin #addin nuget:?package=dotMorten.Microsoft.SqlServer.Types&version=1.2.0 // Install dotMorten.Microsoft.SqlServer.Types as a Cake Tool #tool nuget:?package=dotMorten.Microsoft.SqlServer.Types&version=1.2.0
a .NET Standard implementation of the spatial types in
If you like this library and use it a lot, consider sponsoring me. Anything helps and encourages me to keep going.
See here for details: https://github.com/sponsors/dotMorten
Install the package
dotMorten.Microsoft.SqlServer.Types from NuGet.
Assigning SqlGeometry or SqlGeography to a command parameter:
command.Parameters.AddWithValue("@GeographyColumn", mySqlGeography); command.Parameters["@GeometryColumn"].UdtTypeName = "Geography"; command.Parameters.AddWithValue("@GeographyColumn", mySqlGeometry); command.Parameters["@GeometryColumn"].UdtTypeName = "Geometry"
The geometry will automatically be correctly serialized.
Reading geometry and geography
Use the common methods for getting fields of specific types:
var geom1 = reader.GetValue(geomColumn) as SqlGeometry; var geom2 = reader.GetFieldValue<SqlGeometry>(geomColumn); var geom3 = = SqlGeometry.Deserialize(reader.GetSqlBytes(geomColumn)); //Avoids any potential assembly-redirect issue. See https://docs.microsoft.com/en-us/sql/sql-server/install/warning-about-client-side-usage-of-geometry-geography-and-hierarchyid?view=sql-server-2014#corrective-action
The spatial operations like intersection, area etc are not included here. You can perform these as part of your query instead and get them returned in a column.
|Product||Versions Compatible and additional computed target framework versions.|
|.NET||net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed.|
|.NET Core||netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed.|
|.NET Standard||netstandard2.0 is compatible. netstandard2.1 was computed.|
|.NET Framework||net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed.|
|MonoAndroid||monoandroid was computed.|
|MonoMac||monomac was computed.|
|MonoTouch||monotouch was computed.|
|Tizen||tizen40 was computed. tizen60 was computed.|
|Xamarin.iOS||xamarinios was computed.|
|Xamarin.Mac||xamarinmac was computed.|
|Xamarin.TVOS||xamarintvos was computed.|
|Xamarin.WatchOS||xamarinwatchos was computed.|
- System.Data.SqlClient (>= 4.5.1)
- System.Memory (>= 4.5.1)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on dotMorten.Microsoft.SqlServer.Types:
Common abstractions for using hierarchyid with EF Core
Simple library for cascade bulk-insert using Entity Framework supporting MS SQL Features: - Bulk-insert EF entities, info about entities is retrieved from EF - retrieve Id from DB for identity PK using Hi/Lo algorithm - propagation id to foreign key columns - cascade bulk-insert with unlimited depth
Add SqlHierarchyId support to SqlConnection
A component to synchronize data between Microsoft SQL Server and Excel files in OpenXML format (xlsx).
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on dotMorten.Microsoft.SqlServer.Types:
EntityFramework Reverse POCO Code First Generator - Beautifully generated code that is fully customisable. This generator creates code as if you reverse engineered a database and lovingly created the code by hand. It is free to academics (you need a .edu or a .ac email address), not free for commercial use. Obtain your licence from
Strong-name signed so the UDT types will automatically deserialize