Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Pobieranie ukończonego projektu
W tej sekcji dodasz klasy modelu, które definiują 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 POCO:
- Author
- Książka
W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy folder Modele. Wybierz pozycję Dodaj, a następnie wybierz pozycję Klasa. Nadaj klasie Authornazwę .
Zastąp cały kod standardowy w 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 baz danych. Dla każdego modelu właściwość Id stanie się kolumną z kluczem głównym w tabeli bazy danych.
W klasie Book element AuthorId definiuje klucz obcy w tabeli Author. (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 Authorelementu . Aby uzyskać dostęp do powiązanych Author elementów w kodzie, możesz użyć właściwości nawigacji. Mówię więcej o właściwościach nawigacji w części 4, Obsługa relacji jednostek.
Dodawanie kontrolerów Web API
W tej sekcji dodamy kontrolery interfejsu API sieci Web, które obsługują operacje CRUD (tworzenie, odczytywanie, aktualizowanie i usuwanie). Kontrolery będą używać programu 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, więc potrzebuje skompilowanego zestawu.
W Eksploratorze 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 Web API 2 z działaniami, używając Entity Framework". Kliknij przycisk Dodaj.
W oknie dialogowym Dodawanie kontrolera wykonaj następujące czynności:
- Z listy rozwijanej Klasa modelu wybierz klasę
Author. (Jeśli nie widzisz go na liście rozwijanej, upewnij się, że utworzono projekt). - 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:
-
AuthorsControllerdefiniuje kontroler internetowego interfejsu API. Kontroler implementuje interfejs API REST używany przez klientów do wykonywania operacji CRUD na liście autorów. -
BookServiceContextzarządza obiektami jednostek w czasie wykonywania, co obejmuje wypełnianie obiektów danymi z bazy danych, śledzenie zmian i utrwalanie danych do bazy danych. Dziedziczy z elementuDbContext.
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.