ClearBlueDesign.EntityFrameworkCore.Scaffolder 1.0.0-alpha.1

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

// Install ClearBlueDesign.EntityFrameworkCore.Scaffolder as a Cake Tool
#tool nuget:?package=ClearBlueDesign.EntityFrameworkCore.Scaffolder&version=1.0.0-alpha.1&prerelease

ClearBlueDesign.EntityFrameworkCore.Scaffolder

Note: The project is at an early alpha stage phase.

This project allows you to control how EntityFrameworkCore will scaffold your DbContext and models using database-first approach.

Usage

  1. Add this package to your startup project.
Install-Package ClearBlueDesign.EntityFrameworkCore.Scaffolder -Pre
  1. Create scaffolder.json file at the project root, if none was created during installation process, and configure options as needed.
  2. Add implementation of IDesignTimeServices to the startup project
public class DesignTimeServices : IDesignTimeServices {
	public void ConfigureDesignTimeServices(IServiceCollection services) {
		services.AddScaffolder();
	}
}
  1. Run scaffold command
Scaffold-DbContext "name=DefaultConnection" "Microsoft.EntityFrameworkCore.SqlServer"

Check Scaffold-DbContext Docs for available parameters

Options

Below we listed all the available options and their default values.

{
	"Scaffolding": {
		"UsePluralizer": true,
		"UseDataAnnotations": false
	},

	"DbContext": {
		"Base": "DbContext"
	},

	"EntityType": {
		"UseLazyLoading": true,
		"BaseMappings": {
			"<TableName1>": [ "MyBaseClass1", "IContract" ],
			"<TableName2>": [ "MyGenericClass1<Int32>", "IContract" ]
			"<TableName3>": [ "IContract" ]
		},
		"LoadAssemblies": [
			"My.Awesome.Project"
		]
	}
}

Contribution

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues in the hotlist: community-help.

License

This project is licensed under the MIT license.

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.1 is compatible.  netcoreapp2.2 was computed.  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

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
1.0.0-alpha7 1,093 7/1/2020
1.0.0-alpha6 304 6/29/2020
1.0.0-alpha5 888 12/12/2019
1.0.0-alpha4 331 12/12/2019
1.0.0-alpha3 333 12/3/2019
1.0.0-alpha.2 4,660 12/3/2018
1.0.0-alpha.1 510 11/27/2018