Sdílet prostřednictvím


Přidání modelů a kontrolerů

Stáhnout dokončený projekt

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

Přidání tříd modelů

V tomto kurzu vytvoříme databázi pomocí přístupu Code First k Entity Frameworku (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 naleznete v tématu Přístupy k vývoji entity Framework.)

Začneme definováním objektů domény jako objektů POCO (prostých objektů CLR). Vytvoříme následující POCOs:

  • Author
  • Kniha

V Průzkumníku řešení klikněte pravým tlačítkem myši 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í se složkou Modely zvýrazněnou modře a položkami nabídky Přidat a Třída zvýrazněnými žlutě.

Nahraďte veškerý šablonový 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 Book, s 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. U každého modelu Id se vlastnost stane sloupcem primárního klíče v tabulce databáze.

Ve třídě AuthorId Book definuje cizí klíč do tabulky Author. (Pro jednoduchost předpokládám, že každá kniha má jednoho autora.) Třída knihy obsahuje také navigační vlastnost související Author. Pomocí navigační vlastnosti můžete získat přístup ke souvisejícímu Author kódu. Říkám více o navigačních vlastnostech 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 databázovou vrstvou.

Nejprve můžete odstranit soubor Controllers/ValuesController.cs. Tento soubor obsahuje příklad kontroleru webového rozhraní API, ale pro účely tohoto kurzu ho nepotřebujete.

Snímek obrazovky okna Průzkumníka řešení ukazující soubor Values.Controllers.cs zvýrazněný červeně, což označuje, že musí být odstraněn.

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

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

Snímek obrazovky s oknem Průzkumníka řešení se složkou Kontrolery a položkami nabídky Přidat a Kontroler zvýrazněné modře a žlutě.

V dialogovém okně Přidat scaffolding vyberte "Kontroler webového rozhraní API 2 s akcemi pomocí Entity Framework". Klikněte na tlačítko Přidat.

Snímek obrazovky dialogového okna Přidat scaffold zobrazující kontroler Web API 2 s akcemi použitím možnosti Entity Framework, která je zvýrazněna modrou barvou.

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 jako "AuthorsController".
  4. Klikněte na tlačítko plus (+) vedle třídy kontextu dat.

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

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

Snímek obrazovky s dialogovým oknem Nový kontext dat zobrazující výchozí název v poli Nový datový kontextový typ

Kliknutím na Přidat dokonč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 doby běhu, což zahrnuje naplnění objektů dat z databáze, sledování změn a zachování dat do databáze. Dědí z DbContext.

Snímek obrazovky s oknem Průzkumníka řešení, ve kterém jsou soubory Authors Controller dot c s a Book Service Context dot c s označené červeně.

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

Snímek obrazovky okna Přidat kontroler s vybranou třídou modelu