EDennis.MigrationsExtensions 3.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package EDennis.MigrationsExtensions --version 3.1.0                
NuGet\Install-Package EDennis.MigrationsExtensions -Version 3.1.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="EDennis.MigrationsExtensions" Version="3.1.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add EDennis.MigrationsExtensions --version 3.1.0                
#r "nuget: EDennis.MigrationsExtensions, 3.1.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 EDennis.MigrationsExtensions as a Cake Addin
#addin nuget:?package=EDennis.MigrationsExtensions&version=3.1.0

// Install EDennis.MigrationsExtensions as a Cake Tool
#tool nuget:?package=EDennis.MigrationsExtensions&version=3.1.0                

EDennis.MigrationsExtensions

This package provides extensions to Microsoft.EntityFrameworkCore.Migrations.MigrationBuilder to support SQL Server Temporal tables and/or TestJson tables.

When you add migrationBuilder.SaveMappings(); to the end of the Initial Migration's Up() method, the migrationBuilder saves table<->class mappings and column<->property mappings as SQL Server extended properties. These extended properties are useful when you need to determine class names and property names from the information schema. The EDennis.DataScaffolder Win Forms app will use these extended properties, when they are available.

When you add migrationBuilder.CreateMaintenanceProcedures(); to the beginning of the Initial Migration's Up() method, the migrationBuilder generates a "_" schema (if needed) and creates a number of helpful stored procedures and functions: (a) ResetIdentities, which ensures that the next value for each identity specification is the maximum of the Id associated with the identity spec; (b) ResetSequences, which is similar to ResetIdentities, but with sequences; (c) GetMappings, which returns all entity framework mappings generated by the SaveMappings operation; (d) MaxDateTime2, which returns the maximum datimetime2 value; (e) RightBefore, which gets the datetime2 value that is 100 nanoseconds before the provided datetime2 parameter; and (f) RightAfter, which gets the datetime2 value that is 100 nanoseconds after the provided datetime2 parameter. It is recommended to add migrationBuilder.DropMaintenanceProcedures(); to the end of the Initial Migration's Drop() method.

When you add migrationBuilder.CreateSqlServerTemporalTables(); to the beginning of the Initial Migration's Up() method, the migrationBuilder generates a "_" schema (if needed) and creates various stored procedures and functions used to maintain SQL Server temporal tables. History tables are automatically generated for all tables having the appropriate SysStart and SysEnd columns with datetime2 data types and the appropriate default values. It is recommended to add migrationBuilder.DropSqlServerTemporalTables(); to the end of the Initial Migration's Drop() method.

When you add migrationBuilder.CreateTestJsonTableSupport(); to the Initial Migration's Up() method, the migrationBuilder generates a "_maintenance" schema (if needed), creates a TestJson table, and creates a SaveTestJson stored procedure. It is recommended to add migrationBuilder.DropTestJsonTableSupport(); to the Initial Migration's Drop() method.

A migrationBuilder.DoTemporalInserts(path_to_sql_insert_file); method enables you to add insert statements to the end of any Up() method. Temporal tables are disabled prior to the inserts and re-enabled after the inserts. Also, all sequences and identities are updated after the inserts. NOTE: This method only works if you have called CreateSqlServerTemporalTables() prior to calling this method.

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

NuGet packages (2)

Showing the top 2 NuGet packages that depend on EDennis.MigrationsExtensions:

Package Downloads
EDennis.AspNetCore.Base

Alpha version that still requires (a) updated code comments, (b) updated wiki documentation, and (c) completed sample solution

EDennis.NetStandard.Base

Pre-release of the Library. Documentation to come.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.9.2 673 8/21/2020
3.9.1 449 8/21/2020
3.9.0 447 6/23/2020
3.7.1 481 6/22/2020
3.7.0 506 5/4/2020
3.6.1 840 1/3/2020
3.6.0 656 12/31/2019
3.5.0 523 10/8/2019
3.1.7 549 9/17/2019
3.1.6 5,874 4/26/2019
3.1.5 577 4/26/2019
3.1.4 597 4/24/2019
3.1.3 603 4/24/2019
3.1.2 628 4/24/2019
3.1.1 646 4/24/2019
3.1.0 11,956 2/24/2019
3.0.0 601 2/24/2019
2.0.0 615 2/23/2019
1.9.1 669 2/20/2019
1.9.0 632 2/19/2019
1.8.0 1,989 12/15/2018
1.7.1 728 11/17/2018
1.7.0 736 11/17/2018
1.6.0 885 10/18/2018
1.5.2 835 8/23/2018
1.5.1 832 8/23/2018
1.5.0 827 8/15/2018
1.4.0 846 8/6/2018
1.3.3 855 7/23/2018
1.3.2 816 7/20/2018
1.3.1 800 7/20/2018
1.3.0 942 6/6/2018
1.2.0 940 6/4/2018
1.1.2 974 3/13/2018
1.1.1 1,014 3/13/2018
1.0.0 971 3/11/2018
0.1.2 930 3/11/2018
0.1.1 928 3/10/2018
0.1.0 945 3/10/2018
0.0.2-alpha 820 3/8/2018
0.0.1-alpha 722 3/8/2018

Breaking changes -- reworked code to have a single MigrationsExtensionsSqlGenerator, which accommodates SaveMappings and/or Sql Temporal Table support.  Reworked CreateMaintenanceProcedures to include optional parameters for SQL temporal tables and including specific procedures.  Replaced "_maintenance" with "_" as the maintenance schema name.  Added the ability to include helpful procedures/functions in the "_" schema.