dotMorten.Microsoft.SqlServer.Types 1.1.0

Allows you to use SQL Server spatial SqlHierarchy types on a machine without SQL Server installed and decode these UDT types in any .NET Standard client

Install-Package dotMorten.Microsoft.SqlServer.Types -Version 1.1.0
dotnet add package dotMorten.Microsoft.SqlServer.Types --version 1.1.0
<PackageReference Include="dotMorten.Microsoft.SqlServer.Types" Version="1.1.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 1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Microsoft.SqlServer.Types

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

NuGet:

Install the package dotMorten.Microsoft.SqlServer.Types from NuGet.

Usage

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

Notes:

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.

Microsoft.SqlServer.Types

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

NuGet:

Install the package dotMorten.Microsoft.SqlServer.Types from NuGet.

Usage

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

Notes:

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.

Release Notes

Strong-name signed so the UDT types will automatically deserialize

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

Repository Stars
signumsoftware/framework
Open Source framework for writing data-centric applications over the latest technologies: .Net Core, C# 7.3, ASP.NET Web API, Typescript 3.1 (strict), React and D3

Version History

Version Downloads Last updated
1.1.0 11,441 10/29/2018