JetBrains Rider 2024.3 Help

Entity Framework Core: Scaffold DbContext

This command generates code for a DbContext and entity types from the selected database. To generate each entity type using this command, the corresponding database table must have a primary key.

Under the hood, JetBrains Rider will apply the dotnet ef dbcontext scaffold command with the corresponding arguments. Make sure that dotnet ef global tool is installed on your machine.

  1. Do one of the following:

    • Right-click the desired project in the Solution Explorer and choose Entity Framework Core | Scaffold DbContext.

    • Select Tools | Entity Framework Core | Scaffold DbContext from the main menu.

  2. A dialog will appear where you can specify all necessary options.

    JetBrains Rider: Entity Framework Core: Scaffold DbContext
  3. In the dialog, specify options for updating the database. By default, JetBrains Rider saves the options from previous invocations of EF Core commands and automatically fills most of the fields . If you want to disable this, clear the Autofill general options (for fields with non-sensitive information) and Autofill additional options (for connection strings and related options) checkboxes on the Tools | EF Core UI settings page  Ctrl+Alt+S.

  4. Click OK to apply the command. JetBrains Rider will execute the ef core dbcontext scaffold command with the corresponding arguments.

    By default, the command output will be displayed in a new tab of the EF Core tool window. If you prefer to see the command progress in the status bar and the results of the command in a popup, clear the Execute commands in terminal checkbox on the Tools | EF Core UI settings page  Ctrl+Alt+S.

Below is the list of options for the Scaffold DbContext command.

Common

Connection

Select the source database. You can choose from databases added to the Database window Ctrl+W, X.

Provider

The provider to use. Typically, this is the name of the NuGet package, for example, Microsoft.EntityFrameworkCore.SqlServer.

Migrations project

The project where the command will be applied. If you have invoked the command from the context menu of a specific project, this project will be preselected.

Startup project

Project to be run when you start your application, containing the entry point or startup logic (like the Main method or Startup.cs in ASP.NET Core). It provides the necessary runtime configuration, dependency injection setup, and configuration context, such as connection strings and service registrations.

Additional Options

Output folder

The folder where the migration classes will be generated.

Use attributes to generate the model

Where possible, use attributes to configure the model. Otherwise, only the fluent API is used.

Use database names

Use table, view, sequence, and column names exactly as they appear in the database. Otherwise, database names can be changed according to the C# name style conventions.

Generate OnConfiguring method

By default, the command creates the OnConfiguring method in the generated DbContext class. Clear this checkbox to disable that.

Use the pluralizer

Automatically pluralize entity class names and DbSet properties in the generated DbContext to match the expected singular or plural forms.

Build Options

Skip project build process

Use this option when the build is up to date. Although this option reduces the execution time of the command, it may also be a source of potential problems if the project has not been built before running the command.

Build configuration

Build configuration of the startup project, for example, Debug or Release.

Target framework

Target runtime to restore packages for when building the startup project.

Execution

Enable diagnostic logging

Show verbose output if the Execute commands in terminal checkbox is enabled on the Tools | EF Core UI settings page  Ctrl+Alt+S.

Additional arguments

Any additional arguments to pass to the application.

Generated DbContext name

Name of the generated DbContext class.

Generated DbContext folder

Directory where the generated DbContext class will be placed.

By default, the command uses all tables from the database for generating entity types. To use only specific tables, clear the Scaffold all tables and add the desired tables manually.

By default, the command uses all schemas from the database for generating entity types. To use only specific schemas, clear the Scaffold all schemas and add the desired schemas manually.

Last modified: 03 December 2024