MVC Framework - Modèles

Le composant 'Modèle' est responsable de la gestion des données de l'application. Il répond à la demande de la vue et il répond également aux instructions du contrôleur de se mettre à jour.

Les classes de modèle peuvent être créées manuellement ou générées à partir d'entités de base de données. Nous allons voir de nombreux exemples de création manuelle de modèles dans les prochains chapitres. Ainsi, dans ce chapitre, nous allons essayer l'autre option, c'est-à-dire générer à partir de la base de données afin que vous ayez une expérience pratique des deux méthodes.

Créer des entités de base de données

Connectez-vous à SQL Server et créez une nouvelle base de données.

Exécutez maintenant les requêtes suivantes pour créer de nouvelles tables.

CREATE TABLE [dbo].[Student]( 
   [StudentID]      INT           IDENTITY (1,1) NOT NULL, 
   [LastName]       NVARCHAR (50) NULL, 
   [FirstName]      NVARCHAR (50) NULL, 
   [EnrollmentDate] DATETIME      NULL, 
   PRIMARY KEY CLUSTERED ([StudentID] ASC) 
)  

CREATE TABLE [dbo].[Course]( 
   [CourseID] INT           IDENTITY (1,1) NOT NULL, 
   [Title]    NVARCHAR (50) NULL, 
   [Credits]  INT           NULL, 
   PRIMARY KEY CLUSTERED ([CourseID] ASC) 
)  

CREATE TABLE [dbo].[Enrollment]( 
   [EnrollmentID] INT IDENTITY (1,1) NOT NULL, 
   [Grade]        DECIMAL(3,2) NULL, 
   [CourseID]     INT NOT NULL, 
   [StudentID]    INT NOT NULL, 
   PRIMARY KEY CLUSTERED ([EnrollmentID] ASC), 
      CONSTRAINT [FK_dbo.Enrollment_dbo.Course_CourseID] FOREIGN KEY ([CourseID]) 
   REFERENCES [dbo].[Course]([CourseID]) ON DELETE CASCADE, 
      CONSTRAINT [FK_dbo.Enrollment_dbo.Student_StudentID] FOREIGN KEY ([StudentID]) 
   REFERENCES [dbo].[Student]([StudentID]) ON DELETE CASCADE 
)

Générer des modèles à l'aide d'entités de base de données

Après avoir créé la base de données et configuré les tables, vous pouvez continuer et créer une nouvelle application vide MVC. Cliquez avec le bouton droit sur le dossier Modèles de votre projet et sélectionnez Ajouter → Nouvel élément. Ensuite, sélectionnez ADO.NET Entity Data Model.

Dans l'assistant suivant, choisissez Générer à partir de la base de données et cliquez sur Suivant. Définissez la connexion à votre base de données SQL.

Sélectionnez votre base de données et cliquez sur Tester la connexion. Un écran similaire au suivant suivra. Cliquez sur Suivant.

Sélectionnez Tables, vues et procédures et fonctions stockées. Cliquez sur Terminer. Vous verrez la vue du modèle créée comme indiqué dans la capture d'écran suivante.

Les opérations ci-dessus créeraient automatiquement un fichier modèle pour toutes les entités de la base de données. Par exemple, la table Student que nous avons créée aboutira à un fichier modèle Student.cs avec le code suivant -

namespace MvcModelExample.Models { 
   using System; 
   using System.Collections.Generic; 
     
   public partial class Student { 
      
      public Student() { 
         this.Enrollments = new HashSet(); 
      } 
     
      public int StudentID { get; set; } 
      public string LastName { get; set; } 
      public string FirstName { get; set; } 
      public Nullable EnrollmentDate { get; set; } 
      public virtual ICollection Enrollments { get; set; } 
   } 
}