27 0 1MB
Tutorial : ASP.NET MVC5 et ENTITY FRAMEWORK DATABASE FIRST A l’aide d’ASP.NET MVC et Entity Framework, vous pouvez créer une application web qui fournit une interface à une base de données existante. Ce chapitre vous montre comment générer automatiquement un code qui permet aux utilisateurs d’afficher, modifier, créer et supprimer des données qui résident dans une table de base de données. Le code généré correspond aux colonnes des tables de la base de données.
1- Créez une Application Web ASP.NET Dans une nouvelle solution ou la même solution que le projet de base de données, créez un nouveau projet dans Visual Studio et sélectionnez le modèle Application Web ASP.NET.Nommez le projet ContosoSite.
Cliquez Dans la fenêtre nouveau projet ASP.NET, sélectionnez le modèle MVC. Vous pouvez désactiver l’option hôte dans le CLOUD pour l’instant parce que vous allez déployer l’application vers le CLOUD plus tard. Cliquez sur OK pour créer l’application.
1
Le projet est créé avec les dossiers et les fichiers par défaut Vous allez utiliser Entity Framework 6. Vous pouvez vérifier la version d’Entity Framework dans votre projet par le biais de la fenêtre de Manage NuGet Packages. Si nécessaire, mettez à jour votre version d’Entity Framework.
2- Créer la base de données et générer les entités avec Entity Framework Créer la base de données Gestion_etudiants sous SQL SERVER en utilisant l’explorateur de serveur sous visual studio ou l’outil sql server managment studio. Ajouter les tables suivantes sans oublier les contraintes de clé primaire et les clé étrangères. 2
Student(StudentID, LastName, FirstName, EnrollmentDate) Course(CourseID, Title, Credits) Enrollment(EnrollmentID, Grade, StudentID, CourseID) Ensuite créer les entités de Entity Framework basés sur les tables de base de données. Ces entités sont les classes que vous allez utiliser pour travailler avec les données. Chaque entité reflète une table dans la base de données et contient des propriétés qui correspondent aux colonnes dans la table. Cliquez droit sur le dossier de modèles, puis sélectionnez Ajouter Nouvel élément.
Dans la fenêtre Ajouter un nouvel élément, sélectionnez données dans le volet gauche et ADO.NET Entity Data Model dans les options dans le volet central. Nommez le nouveau fichier de modèle ContosoModel
Cliquez sur Ajouter. 3
Dans l’Assistant Entity Data Model, sélectionnez EF à partir de la base de données.
Cliquez sur suivant. Si vous avez des connexions de base de données définies dans votre environnement de développement, vous pouvez voir une de ces connexions ont été présélectionnées. Cliquez sur le bouton Nouvelle connexion.
4
5
Cliquez sur Terminer. Si vous recevez un avertissement de sécurité, cliquez sur OK pour continuer l’exécution du modèle. Les modèles sont générés à partir des tables de base de données, et un diagramme s’affiche et indique les propriétés et les relations entre les tables.
6
Le dossier de modèles comprend maintenant les nouveaux fichiers associés aux modèles qui ont été générés à partir de la base de données.
Le fichier ContosoModel.Context.cs contient une classe qui dérive de la classe de DbContext et fournit une propriété pour chaque classe de modèle qui correspond à une table de base de données. Les fichiers Course.cs, Enrollment.cs et Student.cs contiennent les classes de modèle qui représentent les tables de bases de données. Vous utiliserez la classe de contexte et les classes du modèle lorsque vous travaillez avec des échafaudages.
3- Générer des vues (view) 3.1. Ajouter élément généré automatiquement (scaffolded item) Vous êtes prêt à générer du code qui assure des fonctions de données standard pour les classes du modèle. Vous ajoutez le code en ajoutant un élément de l’échafaudage. Il y a beaucoup d’options pour le type d’échafaudage, que vous pouvez ajouter, l’échafaud comprendra un contrôleur et affichages qui correspondent aux modèles étudiant et l’inscription que vous avez créée dans la section précédente. Pour maintenir la cohérence de votre projet, vous allez ajouter le nouveau contrôleur dans le dossier de contrôleurs existant. Cliquez droit sur le dossier de contrôleurs et sélectionnez AjouterNouvel élément généré automatiquement (scaffolded item)
7
Sélectionnez l’option Contrôleur MVC5 avec vues, utilisant Entity Framework. Cette option génère le contrôleur et les vues pour mettre à jour, supprimer, créer et afficher les données de votre modèle.
Sélectionner l’étudiant pour la classe de modèle, puis sélectionnez le ContosoUniversityEntities pour la classe de contexte. Garder le nom du contrôleur comme StudentsController,
Cliquez sur Ajouter. Si vous recevez une erreur, c’est peut-être parce que vous ne construisez pas le projet dans la section précédente. Dans l’affirmative, essayez de générer le projet et puis ajoutez l’élément de structure à nouveau. 8
Après que le processus de génération de code est terminé, vous verrez un nouveau contrôleur et vues de votre projet. Effectuez les mêmes étapes de nouveau, mais ajouter un scaffolded item pour la classe d’inscription. Lorsque vous avez terminé, vous devriez avoir un fichier EnrollmentsController.cs et un dossier sous vues nommées Enrollments avec les vues : créer, supprimer, détails, modifiez et Index.
3.2. Ajouter des liens vers les nouvelles vues Pour le rendre plus facile pour vous de naviguer vers votre vue, vous pouvez ajouter un couple de liens hypertexte à des vues d’Index pour les étudiants et les inscriptions. Ouvrez le fichier à Views/Home/Index.cshtml, qui est la page d’accueil de votre site. Ajoutez le code suivant sous le jumbotron.
@Html.ActionLink("List of students", "Index", "Students")
@Html.ActionLink("List of enrollments", "Index", "Enrollments")
Pour la méthode ActionLink, le premier paramètre est le texte à afficher dans le lien. Le second paramètre est l’action et le troisième paramètre est le nom du contrôleur. Par exemple, le premier lien pointe vers l’action Index dans StudentsController. Le lien réel est construit à partir de ces valeurs. Le premier lien mène finalement au fichier Index.cshtml dans le dossier Vues/étudiants .
3.3. Afficher la vue student Vérifier que le code généré affiche correctement la liste des étudiants et permet les opérations d’ajout, suppression et modification. 9
Faites un double click sur le fichier Views/Home/Index.cshtml et sélectionner View in Browser. Cliquer sur le lien “liste des étudiants”
10
11
12
4- Changer le schéma de la base de données 4.1 Ajouter une colonne :
13
Ouvrir le modèle des entités ContosoModel.edmx dans models puis click droit sur le modèle et choisir : mettre à jour le modèle à partir de la base de données (Update Model from Database)
Dans l’assistant de mise à jour sélectionner l’onglet rafraîchir (refresh) puis sélectionner la table student puis click sur terminer (finish).
5. Personnaliser les vues : Ajouter à la vue student/Details la liste des cours poursuivis Ouvrir Students/Details.cshtml, et sous le dernier tab, et Avant tag, ajouter le code suivant : 14
Course Title | Grade | Credits |
---|---|---|
@Html.DisplayFor(modelItem =>item.Course.Title) | @Html.DisplayFor(modelItem =>item.Grade) | @Html.DisplayFor(modelItem =>item.Course.Credits) |
@Html.ActionLink("Create New", "Create")
@Html.ActionLink("Last Name", "Index", new { sortOrder = ViewBag.NameSortParm}) | First Name | @Html.ActionLink("Enrollment Date", "Index", new {sortOrder = ViewBag.DateSortParm }) |
---|
@Html.ActionLink("Last Name", "Index", new { sortOrder = ViewBag.NameSortParm, currentFilter=ViewBag.CurrentFilter }) | First Name | @Html.ActionLink("Enrollment Date", "Index", new { sortOrder = ViewBag.DateSortParm, currentFilter=ViewBag.CurrentFilter }) | |
---|---|---|---|
@Html.DisplayFor(modelItem => item.LastName) | @Html.DisplayFor(modelItem => item.FirstMidName) | @Html.DisplayFor(modelItem => item.EnrollmentDate) | @Html.ActionLink("Edit", "Edit", new { id=item.ID }) | 24 @Html.ActionLink("Details", "Details", new { id=item.ID }) | @Html.ActionLink("Delete", "Delete", new { id=item.ID }) |
Enrollment Date | Students |
---|---|
@Html.DisplayFor(modelItem => item.EnrollmentDate) | @item.StudentCount |