Přidání modelů a kontrolerů
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
.
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 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. 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.
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.
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.
V dialogovém okně Přidat kontroler postupujte takto:
- 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.) - Zaškrtněte políčko Použít akce asynchronního kontroleru.
- Název kontroleru ponechte na "AuthorsController".
- Klikněte na tlačítko plus (+) vedle položky Třída kontextu dat.
V dialogovém okně Nový kontext dat ponechte výchozí název a klikněte na Přidat.
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í zDbContext
.
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.