Ajouter des modèles et des contrôleurs
Dans cette section, vous allez ajouter des classes de modèle qui définissent les entités de base de données. Ensuite, vous allez ajouter des contrôleurs d’API web qui effectuent des opérations CRUD sur ces entités.
Ajouter des classes de modèle
Dans ce tutoriel, nous allons créer la base de données à l’aide de l’approche « Code First » d’Entity Framework (EF). Avec Code First, vous écrivez des classes C# qui correspondent à des tables de base de données, et EF crée la base de données. (Pour plus d’informations, consultez Approches de développement d’Entity Framework.)
Nous commençons par définir nos objets de domaine en tant que POC (objets CLR simples). Nous allons créer les POCO suivants :
- Auteur
- Book
Dans Explorateur de solutions, cliquez avec le bouton droit sur le dossier Modèles. Sélectionnez Ajouter, puis Classe. Nommez la classe Author
.
Remplacez tout le code réutilisable dans Author.cs par le code suivant.
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace BookService.Models
{
public class Author
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
}
}
Ajoutez une autre classe nommée Book
, avec le code suivant.
using System.ComponentModel.DataAnnotations;
namespace BookService.Models
{
public class Book
{
public int Id { get; set; }
[Required]
public string Title { get; set; }
public int Year { get; set; }
public decimal Price { get; set; }
public string Genre { get; set; }
// Foreign Key
public int AuthorId { get; set; }
// Navigation property
public Author Author { get; set; }
}
}
Entity Framework utilisera ces modèles pour créer des tables de base de données. Pour chaque modèle, la Id
propriété devient la colonne clé primaire de la table de base de données.
Dans la classe Book, le AuthorId
définit une clé étrangère dans la Author
table. (Par souci de simplicité, je suppose que chaque livre a un seul auteur.) La classe book contient également une propriété de navigation vers le associé Author
. Vous pouvez utiliser la propriété de navigation pour accéder au code associé Author
. J’en dirai plus sur les propriétés de navigation dans la partie 4, Gestion des relations d’entité.
Ajouter des contrôleurs d’API web
Dans cette section, nous allons ajouter des contrôleurs d’API web qui prennent en charge les opérations CRUD (créer, lire, mettre à jour et supprimer). Les contrôleurs utilisent Entity Framework pour communiquer avec la couche de base de données.
Tout d’abord, vous pouvez supprimer le fichier Controllers/ValuesController.cs. Ce fichier contient un exemple de contrôleur d’API web, mais vous n’en avez pas besoin pour ce tutoriel.
Ensuite, générez le projet. La structure de l’API web utilise la réflexion pour rechercher les classes de modèle. Elle a donc besoin de l’assembly compilé.
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le dossier Contrôleurs. Sélectionnez Ajouter, puis contrôleur.
Dans la boîte de dialogue Ajouter une structure , sélectionnez « Contrôleur d’API web 2 avec actions, à l’aide d’Entity Framework ». Cliquez sur Add.
Dans la boîte de dialogue Ajouter un contrôleur , procédez comme suit :
- Dans la liste déroulante Classe de modèle , sélectionnez la
Author
classe . (Si vous ne le voyez pas dans la liste déroulante, assurez-vous que vous avez créé le projet.) - Cochez « Utiliser des actions de contrôleur asynchrones ».
- Laissez le nom du contrôleur « AuthorsController ».
- Cliquez sur le bouton plus (+) en regard de Classe de contexte de données.
Dans la boîte de dialogue Nouveau contexte de données , conservez le nom par défaut, puis cliquez sur Ajouter.
Cliquez sur Ajouter pour terminer la boîte de dialogue Ajouter un contrôleur . La boîte de dialogue ajoute deux classes à votre projet :
AuthorsController
définit un contrôleur d’API web. Le contrôleur implémente l’API REST que les clients utilisent pour effectuer des opérations CRUD sur la liste des auteurs.BookServiceContext
gère les objets d’entité pendant l’exécution, ce qui inclut le remplissage des objets avec les données d’une base de données, le suivi des modifications et la persistance des données dans la base de données. Hérite deDbContext
.
À ce stade, générez à nouveau le projet. Suivez maintenant les mêmes étapes pour ajouter un contrôleur d’API pour les Book
entités. Cette fois, sélectionnez Book
pour la classe de modèle, puis sélectionnez la classe existante BookServiceContext
pour la classe de contexte de données. (Ne créez pas de contexte de données.) Cliquez sur Ajouter pour ajouter le contrôleur.