Přidání modelů a kontrolerů

Stáhnout dokončený projekt

V této části přidáte třídy modelu, které definují databázové entity. Pak přidáte kontrolery webového rozhraní API, které s těmito entitami provádějí operace CRUD.

Přidání tříd modelu

V tomto kurzu vytvoříme databázi pomocí přístupu Code First pro Entity Framework (EF). Pomocí Code First napíšete třídy jazyka C#, které odpovídají databázovým tabulkám, a EF vytvoří databázi. (Další informace najdete v tématu Vývojové přístupy pro Entity Framework.)

Začneme tím, že definujeme objekty naší domény jako OBJEKTY POCO (prosté staré objekty CLR). Vytvoříme následující poceo:

  • Autor
  • Book

V Průzkumník řešení klikněte pravým tlačítkem na složku Modely. Vyberte Přidat a pak vyberte Třída. Pojmenujte třídu Author.

Snímek obrazovky se složkou Průzkumník řešení zobrazující složku Modely zvýrazněnou modře a položky nabídky Přidat a Třída zvýrazněné žlutě

Nahraďte veškerý často používaný kód v Author.cs následujícím kódem.

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; }
    }
}

Přidejte další třídu s názvem Books následujícím kódem.

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 bude tyto modely používat k vytváření databázových tabulek. Pro každý model Id se vlastnost stane sloupcem primárního klíče databázové tabulky.

Ve třídě AuthorId Book definuje cizí klíč do Author tabulky. (Pro zjednodušení předpokládám, že každá kniha má jednoho autora.) Třída knihy obsahuje také navigační vlastnost pro související Author. Vlastnost navigation můžete použít pro přístup k souvisejícímu Author kódu. Více o navigačních vlastnostech říkám v části 4 , Zpracování vztahů entit.

Přidání kontrolerů webového rozhraní API

V této části přidáme kontrolery webového rozhraní API, které podporují operace CRUD (vytvoření, čtení, aktualizace a odstranění). Kontrolery budou používat Entity Framework ke komunikaci s vrstvou databáze.

Nejprve můžete odstranit soubor Controllers/ValuesController.cs. Tento soubor obsahuje ukázkový kontroler webového rozhraní API, ale pro účely tohoto kurzu ho nepotřebujete.

Snímek obrazovky okna Průzkumník řešení se zobrazeným červeným zvýrazněným souborem Kontrolery hodnot dot c s, který označuje, že musí být odstraněn.

Dále sestavte projekt. Generování uživatelského rozhraní Web API používá k vyhledání tříd modelu reflexi, takže potřebuje zkompilované sestavení.

V Průzkumník řešení klikněte pravým tlačítkem na složku Kontrolery. Vyberte Přidat a pak vyberte Kontroler.

Snímek obrazovky okna Průzkumník řešení se složkou Kontrolery a položkami nabídky Přidat a Kontroler zvýrazněnými modře a žlutě

V dialogovém okně Přidat generování uživatelského rozhraní vyberte Kontroler webového rozhraní API 2 s akcemi pomocí Entity Frameworku. Klikněte na Přidat.

Snímek obrazovky s dialogovým oknem Přidat generování uživatelského rozhraní zobrazující kontroler Web A P I 2 s akcemi používajícími Entity Framework zvýrazněnou modře

V dialogovém okně Přidat kontroler postupujte takto:

  1. V rozevíracím seznamu Třída modelu vyberte Author třídu. (Pokud ho v rozevíracím seznamu nevidíte, ujistěte se, že jste projekt vytvořili.)
  2. Zaškrtněte políčko Použít akce asynchronního kontroleru.
  3. Název kontroleru ponechte na "AuthorsController".
  4. Klikněte na tlačítko plus (+) vedle položky Třída kontextu dat.

Snímek obrazovky dialogového okna Přidat kontroler zobrazující červeně zakroužkované tlačítko plus a třídu Author vybranou v rozevíracím seznamu Třída modelu

V dialogovém okně Nový kontext dat ponechte výchozí název a klikněte na Přidat.

Snímek obrazovky dialogového okna Nový kontext dat s výchozím názvem v poli Nový typ kontextu dat

Kliknutím na Přidatdokončete dialogové okno Přidat kontroler . Dialogové okno přidá do projektu dvě třídy:

  • AuthorsController definuje kontroler webového rozhraní API. Kontroler implementuje rozhraní REST API, které klienti používají k provádění operací CRUD v seznamu autorů.
  • BookServiceContext spravuje objekty entit během běhu, což zahrnuje naplnění objektů daty z databáze, sledování změn a uchovávání dat do databáze. Dědí z DbContext.

Snímek obrazovky s oknem Průzkumník řešení se souborem Kontroler autorů dot c s a červeně zakroužkovaným souborem Book Service Context dot c s

V tomto okamžiku projekt znovu sestavte. Teď stejným postupem přidejte kontroler rozhraní API pro Book entity. Tentokrát vyberte Book třídu modelu a vyberte existující BookServiceContext třídu pro třídu kontextu dat. (Nevytvovávejte nový kontext dat.) Kliknutím na Přidat přidejte kontroler.

Snímek obrazovky okna Přidat kontroler s vybranou třídou modelu Book v rozevírací nabídce Třída modelu