Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Abgeschlossenes Projekt herunterladen
In diesem Abschnitt fügen Sie Modellklassen hinzu, die die Datenbankentitäten definieren. Anschließend fügen Sie Web-API-Controller hinzu, die CRUD-Vorgänge für diese Entitäten ausführen.
Hinzufügen von Modellklassen
In diesem Lernprogramm erstellen wir die Datenbank mithilfe des Ansatzes "Code First" für Entity Framework (EF). Mit Code First schreiben Sie C#-Klassen, die Datenbanktabellen entsprechen, und EF erstellt die Datenbank. (Weitere Informationen finden Sie unter Entity Framework Development Approaches.)
Zunächst definieren wir unsere Domänenobjekte als POCOs (einfache CLR-Objekte). Wir erstellen die folgenden POCOs:
- Verfasser
- Buch
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Ordner "Modelle". Wählen Sie Hinzufügen und dann Klasse aus. Benennen Sie die Klasse Author.
Ersetzen Sie alle Codebausteine in Author.cs durch den folgenden Code.
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; }
}
}
Fügen Sie eine weitere Klasse mit dem Namen Book" mit dem folgenden Code hinzu.
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 verwendet diese Modelle zum Erstellen von Datenbanktabellen. Für jedes Modell wird die Id Eigenschaft zur Primärschlüsselspalte der Datenbanktabelle.
In der Book-Klasse definiert das AuthorId einen Fremdschlüssel in der Author Tabelle. (Der Einfachheit halber gehe ich davon aus, dass jedes Buch über einen einzelnen Autor verfügt.) Die Buchklasse enthält auch eine Navigationseigenschaft für die zugehörige Author. Sie können die Navigationseigenschaft verwenden, um im Code auf das zugehörige Author zuzugreifen. Ich sage mehr über Navigationseigenschaften in Teil 4, Handling Entity Relations.
Hinzufügen von Web-API-Controllern
In diesem Abschnitt fügen wir Web-API-Controller hinzu, die CRUD-Vorgänge unterstützen (Erstellen, Lesen, Aktualisieren und Löschen). Die Controller verwenden Entity Framework für die Kommunikation mit der Datenbankebene.
Zuerst können Sie die Dateicontroller/ValuesController.cs löschen. Diese Datei enthält einen Beispiel-Web-API-Controller, sie ist jedoch für dieses Lernprogramm nicht erforderlich.
Erstellen Sie als Nächstes das Projekt. Das Web-API-Gerüst verwendet Spiegelung, um die Modellklassen zu finden, sodass die kompilierte Assembly benötigt wird.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Ordner "Controller". Wählen Sie "Hinzufügen" und dann "Controller" aus.
Wählen Sie im Dialogfeld " Gerüst hinzufügen " die Option "Web-API 2-Controller mit Aktionen mit Entity Framework" aus. Klicken Sie auf Hinzufügen.
Gehen Sie im Dialogfeld " Controller hinzufügen " wie folgt vor:
- Wählen Sie in der Dropdownliste " Modellklasse " die
AuthorKlasse aus. (Wenn sie nicht in der Dropdownliste aufgeführt ist, stellen Sie sicher, dass Sie das Projekt erstellt haben.) - Aktivieren Sie "Asynchrone Controlleraktionen verwenden".
- Belassen Sie den Controllernamen als "AuthorsController".
- Klicken Sie neben der Datenkontextklasse auf die Schaltfläche plus (+).
Behalten Sie im Dialogfeld "Neuer Datenkontext " den Standardnamen bei, und klicken Sie auf "Hinzufügen".
Klicken Sie auf "Hinzufügen" , um das Dialogfeld "Controller hinzufügen " abzuschließen. Das Dialogfeld fügt Ihrem Projekt zwei Klassen hinzu:
-
AuthorsControllerdefiniert einen Web-API-Controller. Der Controller implementiert die REST-API, die Clients zum Ausführen von CRUD-Vorgängen in der Liste der Autoren verwenden. -
BookServiceContextverwaltet Entitätsobjekte während der Laufzeit, einschließlich auffüllen von Objekten mit Daten aus einer Datenbank, Änderungsnachverfolgung und Beibehalten von Daten in der Datenbank. Sie erbt vonDbContext.
Zu diesem Zeitpunkt erstellen Sie das Projekt erneut. Führen Sie nun die gleichen Schritte aus, um einen API-Controller für Book Entitäten hinzuzufügen. Wählen Sie Book dieses Mal für die Modellklasse aus, und wählen Sie die vorhandene BookServiceContext Klasse für die Datenkontextklasse aus. (Erstellen Sie keinen neuen Datenkontext.) Klicken Sie auf "Hinzufügen ", um den Controller hinzuzufügen.