Hinzufügen von Modellen und Controllern
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 Tutorial erstellen wir die Datenbank mithilfe des "Code First"-Ansatzes 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-Entwicklungsansätze.)
Zunächst definieren wir unsere Domänenobjekte als POCOs (einfache CLR-Objekte). Wir erstellen die folgenden POCOs:
- Autor
- Buch
Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf den Ordner Modelle. Wählen Sie Hinzufügen und dann Klasse aus. Geben Sie der Klassen den Namen Author
.
Ersetzen Sie den gesamten Boilerplate-Code 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 mit dem folgenden Code eine weitere Klasse mit dem Namen hinzu Book
.
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, um Datenbanktabellen zu erstellen. Für jedes Modell wird die Id
-Eigenschaft zur Primärschlüsselspalte der Datenbanktabelle.
In der Book-Klasse definiert einen AuthorId
Fremdschlüssel in der Author
Tabelle. (Der Einfachheit halber gehe ich davon aus, dass jedes Buch einen einzelnen Autor hat.) Die Buchklasse enthält auch eine Navigationseigenschaft für die zugehörige Author
. Sie können die Navigationseigenschaft verwenden, um auf das zugehörige Author
im Code zuzugreifen. Ich sage mehr über Navigationseigenschaften in Teil 4, Behandeln von Entitätsbeziehungen.
Hinzufügen von Web-API-Controllern
In diesem Abschnitt fügen wir Web-API-Controller hinzu, die CRUD-Vorgänge (Erstellen, Lesen, Aktualisieren und Löschen) unterstützen. Die Controller verwenden Entity Framework, um mit der Datenbankschicht zu kommunizieren.
Zunächst können Sie die Datei Controller/ValuesController.cs löschen. Diese Datei enthält einen Beispiel-Web-API-Controller, den Sie für dieses Tutorial jedoch nicht benötigen.
Erstellen Sie als Nächstes das Projekt. Das Web-API-Gerüst verwendet Reflektion, 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 mithilfe von 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 Klasse aus
Author
. (Wenn es in der Dropdownliste nicht aufgeführt wird, stellen Sie sicher, dass Sie das Projekt erstellt haben.) - Aktivieren Sie "Asynchrone Controlleraktionen verwenden".
- Belassen Sie den Controllernamen als "AuthorsController".
- Klicken Sie auf die Plustaste (+) neben Datenkontextklasse.
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:
AuthorsController
definiert 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.BookServiceContext
verwaltet Entitätsobjekte während der Laufzeit, was das Auffüllen von Objekten mit Daten aus einer Datenbank, die Änderungsnachverfolgung und das Beibehalten von Daten in der Datenbank umfasst. Er erbt vonDbContext
.
Erstellen Sie an diesem Punkt 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
diesmal 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.