Author, TechWriter

Scaffolding ASP.Net Core MVC

Hits: 733

In this post we are going to explore how to create model based on existing database (Db-First), with the help of Entityframework Core Command then learn how to generate Controller & Views using Scaffolding (Interface & Code-Generator Command) based on model.

Here’s the Topics:

  1. Manage Packages
  2. EF Core Model(DB-First)
  3. MVC Core Scaffolding


Let’s Create New Project: File > New > Projectcoremvc_1

From left menu choose .Net Core > ASP.Net Core Web Application


Choose ASP.Net Core sample template, Click OK.


Here’s the initial view of sample template in solution explorer.


Create a new database using SSMS, name it “PhoneBook”. Copy the below query & run it using query editor of SSMS.

Entity Framework Core:

Entity Framework (EF) Core is data access technology which is targeted for cross-platform. Open project.json add below packages in Dependency & Tools section.

Add Dependency Package:

Add Tools:

EntityFrameworkCore.SqlServer: Database Provider, that allows Entity Framework Core to be used with Microsoft SQL Server.

EntityFrameworkCore.SqlServer.Design: Design-time, that allows Entity Framework Core functionality (EF Core Migration) to be used with Microsoft SQL Server.

EntityFrameworkCore.Tools: Command line tool for EF Core that Includes Commands

For Package Manager Console:

  • Scaffold-DbContext
  • Add-Migration
  • Update-Database


For Command Window

  • dotnet ef dbcontext scaffold


Using CommandLine

In our sample application we are going to apply Commands using the command line.


Go to Project directory > Shift + Right Click to open Command window.


Command: dotnet ef –help


Command: dotnet ef dbcontext scaffold “Server=DESKTOP-5B67SHH;Database=PhoneBook;Trusted_Connection=True;” Microsoft.EntityFrameworkCore.SqlServer –output-dir Models


As we can see from solution explorer models folder is created with Context & Entities.


Generated DbContext:

Finally full view of generated Context class.

ASP.Net MVC Core Scaffolding:

We have used scaffolding in previous version of .Net, as .Net Core is new sometimes it’s getting confusing how to start, here we will explore those issues. Open project.json add below packages in Dependency & Tools section.

Add Dependency Package:

Add Tools:

Click Save, packages will restore automatically. Well packages are installed to our application, we are good to perform next step of Scaffolding Controller & Views.

Scaffold using Interface:

Right Click on Controller folder > Add > New Scaffolding Item


Choose the scaffold option how the code will generated.


Now provide model, context classes that is going to use to interact with database, choose view options then click Add button to perform the action.


Wait for a while as we can see from solution explorer the views are generated.


The output messages are shown below.

 Scaffold using CommandLine:

We can generate that by using CommandLine, pointing the project folder with Shift + Right Click then command window will appear. Get help information by the following command.

Command: dotnet aspnet-codegenerator –help


Let’s generate Controller & View using below command with project path, controller, model info.

Command: dotnet aspnet-codegenerator –project “E:\Documents\Article\ScaffoldingCoreMVC\CoreMVCScaffolding\src\CoreMVCScaffolding” controller –force –controllerName ContactsController –model CoreMVCScaffolding.Models.Contacts –dataContext CoreMVCScaffolding.Models.PhoneBookContext –relativeFolderPath Controllers –controllerNamespace CoreMVCScaffolding.Controllers –useDefaultLayout


As we can see the controller & view is successfully generated using MVC model. In our sample application if we notice in the Error List tab there’s a warning about to move sensitive information from DbContext.


This is the area in DbContext class which cause the warning.

Let’s comment that out, here in startup class now add the service by moving the connectionstring info from DbContext. Below you may notice the code snippet that add the service.

If we now try to run our application below exception will occur. Here’s the Exception message:


It says, No database provider has been configured for this DbContext. Notice that we have used AddDbContext in ConfigureServices(IServiceCollection services) method.

But we didn’t pass it for DbContext, We need to add below constructor to pass it to the base constructor for DbContext.

Now we may run our sample application by Ctrl+f5 or we can run using below command.

Command: dotnet run


Open browser Go to http://localhost:5000, finally the application is running.

Contact List


Create New Contact


Edit Existing Contact


View Details Existing Contact


Delete Existing Contact


Source Code: I’ve uploaded the full source code to download/clone @github, Hope this will help 🙂




Post a comment