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