dotMorten.Microsoft.SqlServer.Types 2.5.0

dotnet add package dotMorten.Microsoft.SqlServer.Types --version 2.5.0                
NuGet\Install-Package dotMorten.Microsoft.SqlServer.Types -Version 2.5.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="dotMorten.Microsoft.SqlServer.Types" Version="2.5.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add dotMorten.Microsoft.SqlServer.Types --version 2.5.0                
#r "nuget: dotMorten.Microsoft.SqlServer.Types, 2.5.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install dotMorten.Microsoft.SqlServer.Types as a Cake Addin
#addin nuget:?package=dotMorten.Microsoft.SqlServer.Types&version=2.5.0

// Install dotMorten.Microsoft.SqlServer.Types as a Cake Tool
#tool nuget:?package=dotMorten.Microsoft.SqlServer.Types&version=2.5.0                


a .NET Standard implementation of the spatial types in Microsoft.SqlServer.Types.

Difference between v1.x and v2.x

The v1.x and v2.x versions are identical and kept in sync. The only difference is the dependency:

  • v1.x : Depends on the legacy System.Data.SqlClient package.
  • v2.x : Depends on updated Microsoft.Data.SqlClient package.


Input parameter

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


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 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.  net8.0 was computed.  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. 
.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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (6)

Showing the top 5 NuGet packages that depend on dotMorten.Microsoft.SqlServer.Types:

Package Downloads

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).


RabbitMQ.Dataflows library helps use RabbitMQ as well as create powerful RabbitMQ powered workflows.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on dotMorten.Microsoft.SqlServer.Types:

Repository Stars
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
Version Downloads Last updated
2.5.0 251,480 2/17/2022
2.4.0 22,055 1/4/2022
1.5.0 3,784,800 2/17/2022
1.4.0 7,927,182 1/4/2022
1.3.0 4,893,632 12/11/2020
1.2.0 129,323 9/9/2020
1.1.0 366,209 10/29/2018

Added SqlGeography.AsTextZM(). Greatly improved WKT text and writing and closer match behavior of SQL Server.