Dodawanie modeli i kontrolerów
Pobieranie ukończonego projektu
W tej sekcji dodasz klasy modeli definiujące jednostki bazy danych. Następnie dodasz kontrolery internetowego interfejsu API, które wykonują operacje CRUD na tych jednostkach.
Dodawanie klas modelu
W tym samouczku utworzymy bazę danych przy użyciu podejścia "Code First" do platformy Entity Framework (EF). Za pomocą funkcji Code First piszesz klasy języka C#, które odpowiadają tabelom bazy danych, a program EF tworzy bazę danych. (Aby uzyskać więcej informacji, zobacz Entity Framework Development Approaches).)
Zaczynamy od zdefiniowania obiektów domeny jako obiektów POC (zwykłych obiektów CLR). Utworzymy następujące obiekty weryfikacji koncepcji:
- Autor
- Book (Książka)
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy folder Models. Wybierz pozycję Dodaj, a następnie wybierz pozycję Klasa. Nadaj klasie Author
nazwę .
Zastąp cały kod boilerplate w pliku Author.cs następującym kodem.
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; }
}
}
Dodaj kolejną klasę o nazwie Book
, z następującym kodem.
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; }
}
}
Program Entity Framework będzie używać tych modeli do tworzenia tabel bazy danych. Dla każdego modelu Id
właściwość stanie się kolumną klucza podstawowego tabeli bazy danych.
W klasie Book definiuje AuthorId
klucz obcy w Author
tabeli. (Dla uproszczenia zakładam, że każda książka ma jednego autora). Klasa książki zawiera również właściwość nawigacji do powiązanego Author
elementu . Możesz użyć właściwości nawigacji, aby uzyskać dostęp do powiązanego Author
kodu. Mówię więcej o właściwościach nawigacji w części 4, Obsługa relacji jednostek.
Dodawanie kontrolerów internetowego interfejsu API
W tej sekcji dodamy kontrolery internetowego interfejsu API, które obsługują operacje CRUD (tworzenie, odczytywanie, aktualizowanie i usuwanie). Kontrolery będą używać platformy Entity Framework do komunikowania się z warstwą bazy danych.
Najpierw można usunąć plik Controllers/ValuesController.cs. Ten plik zawiera przykładowy kontroler internetowego interfejsu API, ale nie jest on potrzebny na potrzeby tego samouczka.
Następnie skompiluj projekt. Szkielet internetowego interfejsu API używa odbicia w celu znalezienia klas modelu, dlatego wymaga skompilowanego zestawu.
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy folder Controllers. Wybierz pozycję Dodaj, a następnie wybierz pozycję Kontroler.
W oknie dialogowym Dodawanie szkieletu wybierz pozycję "Kontroler internetowego interfejsu API 2 z akcjami przy użyciu programu Entity Framework". Kliknij pozycję Dodaj.
W oknie dialogowym Dodawanie kontrolera wykonaj następujące czynności:
- Na liście rozwijanej Klasa modelu wybierz klasę
Author
. (Jeśli nie widzisz go na liście rozwijanej, upewnij się, że projekt został utworzony). - Sprawdź "Użyj akcji kontrolera asynchronicznego".
- Pozostaw nazwę kontrolera jako "AuthorsController".
- Kliknij przycisk plus (+) obok pozycji Klasa kontekstu danych.
W oknie dialogowym Nowy kontekst danych pozostaw nazwę domyślną i kliknij przycisk Dodaj.
Kliknij przycisk Dodaj , aby zakończyć okno dialogowe Dodawanie kontrolera . Okno dialogowe dodaje dwie klasy do projektu:
AuthorsController
definiuje kontroler internetowego interfejsu API. Kontroler implementuje interfejs API REST używany przez klientów do wykonywania operacji CRUD na liście autorów.BookServiceContext
zarządza obiektami jednostki w czasie wykonywania, co obejmuje wypełnianie obiektów danymi z bazy danych, śledzenie zmian i utrwalanie danych do bazy danych. Dziedziczy zDbContext
elementu .
W tym momencie ponownie skompiluj projekt. Teraz wykonaj te same kroki, aby dodać kontroler interfejsu API dla Book
jednostek. Tym razem wybierz Book
klasę modelu i wybierz istniejącą BookServiceContext
klasę dla klasy kontekstu danych. (Nie twórz nowego kontekstu danych). Kliknij przycisk Dodaj , aby dodać kontroler.