AspNetCore.Docs/aspnetcore/tutorials/first-mvc-app-xplat/adding-model.md

3.4 KiB

title author description ms.author ms.date ms.topic ms.technology keywords ms.prod manager ms.assetid uid
Adding a model to an ASP.NET Core MVC app. rick-anderson Add a model to a simple ASP.NET Core app. riande 09/18/2017 get-started-article aspnet ASP.NET Core,WebAPI,Web API,REST,Mac,Linux,HTTP,Service,HTTP Service,VS Code asp.net-core wpickett 8dc28498-eeee-4666-b903-b593059e9f39 tutorials/first-mvc-app-xplat/adding-model

[!INCLUDEadding-model1]

  • Add a class to the Models folder named Movie.cs.
  • Add the following code to the Models/Movie.cs file:

[!code-csharpMain]

The ID field is required by the database for the primary key.

Build the app to verify you don't have any errors, and you've finally added a Model to your MVC app.

Prepare the project for scaffolding

  • Add the following highlighted NuGet packages to the MvcMovie.csproj file:

    [!code-csharpMain]

  • Save the file and select Restore to the Info message "There are unresolved dependencies".

  • Create a Models/MvcMovieContext.cs file and add the following MvcMovieContext class:

    [!code-csharpMain]

  • Open the Startup.cs file and add two usings:

    [!code-csharpMain]

  • Add the database context to the Startup.cs file:

    [!code-csharpMain]

    This tells Entity Framework which model classes are included in the data model. You're defining one entity set of Movie objects, which will be represented in the database as a Movie table.

  • Build the project to verify there are no errors.

Scaffold the MovieController

Open a terminal window in the project folder and run the following commands:

dotnet restore
dotnet aspnet-codegenerator controller -name MoviesController -m Movie -dc MvcMovieContext --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries 

[!NOTE] If you get an error when the scaffolding command runs, see issue 444 in the scaffolding repository for a workaround.

The scaffolding engine creates the following:

  • A movies controller (Controllers/MoviesController.cs)
  • Razor view files for Create, Delete, Details, Edit and Index pages (Views/Movies/*.cshtml)

The automatic creation of CRUD (create, read, update, and delete) action methods and views is known as scaffolding. You'll soon have a fully functional web application that lets you manage a movie database.

[!INCLUDEadding-model 2x]

[!INCLUDEadding-model]

You now have a database and pages to display, edit, update and delete data. In the next tutorial, we'll work with the database.

Additional resources

[!div class="step-by-step"] Previous - Add a view Next - Working with SQLite