Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.
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á.
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.
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.
A Vezérlő hozzáadása párbeszédpanelen tegye a következőket:
- 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.) - Ellenőrizze az "Aszinkron vezérlőműveletek használata" jelölőnégyzetet.
- Hagyja a vezérlő nevét "AuthorsController" néven.
- Kattintson a Plusz (+) gombra az Adatkörnyezeti osztály mellett.
Az Új adatkörnyezet párbeszédpanelen hagyja meg az alapértelmezett nevet, és kattintson a Hozzáadás gombra.
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:
-
AuthorsControllerweb 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. -
BookServiceContextA 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. ADbContext-t ez örökli.
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.