Modellek és vezérlők hozzáadása

Befejezett projekt letöltése

Ebben a szakaszban olyan modellosztályokat fog hozzáadni, amelyek meghatározzák az adatbázis-entitásokat. Ezután olyan webes API-vezérlőket fog hozzáadni, amelyek CRUD-műveleteket hajtanak végre ezeken az entitásokon.

Modellosztályok hozzáadása

Ebben az oktatóanyagban az Entity Framework (EF) "Code First" megközelítésével fogjuk létrehozni az adatbázist. A Code First használatával adatbázistábláknak megfelelő C#-osztályokat kell írnia, és az EF létrehozza az adatbázist. (További információ: Entity Framework Development Approaches.)

Először POCOS-ként (egyszerű régi CLR-objektumok) definiáljuk a tartományobjektumokat. A következő POCO-kat fogjuk létrehozni:

  • Szerző
  • Könyv

A Megoldáskezelőben kattintson a jobb gombbal a Modellek mappára. Válassza a Hozzáadás, majd az Osztály lehetőséget. Nevezze el az osztályt Author.

Képernyőkép a Megoldáskezelő mappáról, amelyen a Kék színnel kiemelt Modellek mappa, valamint a Hozzáadás és osztály menüelemek sárga színnel jelennek meg.

Cserélje le az Author.cs minden sablonkódját a következő kódra.

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

Adjon hozzá egy másik, az alábbi kóddal ellátott Bookosztályt.

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

Az Entity Framework ezeket a modelleket fogja használni adatbázistáblák létrehozásához. Minden modell esetében a Id tulajdonság lesz az adatbázistábla elsődleges kulcsoszlopa.

A Könyv osztályban a AuthorId rendszer egy idegen kulcsot határoz meg a Author táblában. (Az egyszerűség kedvéért feltételezem, hogy minden könyvnek egyetlen szerzője van.) A könyvosztály a kapcsolódó Authornavigációs tulajdonságot is tartalmazza. A navigációs tulajdonság használatával hozzáférhet a kapcsolódó Author kódhoz. Többet mondok a navigációs tulajdonságokról a 4. részben, Az entitáskapcsolatok kezelése című részben.

Webes API-vezérlők hozzáadása

Ebben a szakaszban olyan webes API-vezérlőket fogunk hozzáadni, amelyek támogatják a CRUD-műveleteket (létrehozás, olvasás, frissítés és törlés). A vezérlők az Entity Framework használatával kommunikálnak az adatbázisréteggel.

Először is törölheti a fájlvezérlőket/ValuesController.cs. Ez a fájl egy példa webes API-vezérlőt tartalmaz, de ehhez az oktatóanyaghoz nincs szüksége rá.

Képernyőkép a Megoldáskezelő ablakáról, amelyen az Értékvezérlők pont c s fájl pirossal van kiemelve, jelezve, hogy törölni kell.

Ezután hozza létre a projektet. A Web API generáló rendszer reflection segítségével keresi meg a modellek osztályait, ezért szüksége van a lefordított assembly-re.

A Megoldáskezelőben kattintson a jobb gombbal a Vezérlők mappára. Válassza a Hozzáadás, majd a Vezérlő lehetőséget.

Képernyőkép a Megoldáskezelő ablakáról a Vezérlők mappával, valamint a Hozzáadás és vezérlő menüelemekkel, kék és sárga színnel kiemelve.

Az Állványzat hozzáadása párbeszédpanelen válassza a "Webes API 2 vezérlő műveletekkel, Entity Framework használatával" (Web API 2 Controller with actions, using Entity Framework) lehetőséget. Kattintson a Hozzáadás gombra.

Képernyőkép az Állványzat hozzáadása párbeszédpanelről, amelyen a Web A P I 2 vezérlő látható kékkel kiemelt Entity Framework beállítással végzett műveletekkel.

A Vezérlő hozzáadása párbeszédpanelen tegye a következőket:

  1. A Modellosztály legördülő listában válassza ki az osztályt Author . (Ha nem látja a legördülő listában, győződjön meg arról, hogy elkészítette a projektet.)
  2. Ellenőrizze az "Aszinkron vezérlőműveletek használata" jelölőnégyzetet.
  3. Hagyja a vezérlő nevét "AuthorsController" néven.
  4. Kattintson a Plusz (+) gombra az Adatkörnyezeti osztály mellett.

Képernyőkép a Vezérlő hozzáadása párbeszédpanelről, amelyen a pirossal körbekarikázható plusz gomb és a Modellosztály legördülő menüben kijelölt Szerző osztály látható.

Az Új adatkörnyezet párbeszédpanelen hagyja meg az alapértelmezett nevet, és kattintson a Hozzáadás gombra.

Képernyőkép az Új adatkörnyezet párbeszédpanelről, amelyen az Alapértelmezett név látható az Új adatkörnyezet típusa mezőben.

Kattintson a Hozzáadás gombra a Vezérlő hozzáadása párbeszédpanel befejezéséhez. A párbeszédpanel két osztályt ad hozzá a projekthez:

  • AuthorsController web API-vezérlőt definiál. A vezérlő implementálja a REST API-t, amellyel az ügyfelek CRUD-műveleteket hajtanak végre a szerzők listáján.
  • BookServiceContext A futtatás során kezeli az entitásobjektumokat, beleértve az adatbázisból származó adatokkal rendelkező objektumok feltöltését, a változáskövetést és az adatok adatbázisba való megőrzését. A DbContext-t ez örökli.

Képernyőkép a Megoldáskezelő ablakáról, amelyen a Szerzők Controller pont c s fájl és a Book Service Context pont c s fájl piros színnel van bekarikázva.

Ezen a ponton hozza létre újra a projektet. Most ugyanezeket a lépéseket követve adjon hozzá egy API-vezérlőt az Book entitásokhoz. Ezúttal válassza ki Book a modellosztályt, és válassza ki az adatkörnyezeti osztály meglévő BookServiceContext osztályát. (Ne hozzon létre új adatkörnyezetet.) Kattintson a Hozzáadás gombra a vezérlő hozzáadásához.

Képernyőkép a Vezérlő hozzáadása ablakról, ahol a Modell osztály legördülő menüjében a Könyv modell osztály van kiválasztva.