Teilen über


ASP.NET Core BlazorQuickGrid-Komponente

Die QuickGrid-Komponente ist eine Razor-Komponente zum schnellen und effizienten Anzeigen von Daten in tabellarischer Form. QuickGrid bietet eine einfache und bequeme Datenrasterkomponente für häufige Rasterrenderingszenarien und dient als Referenzarchitektur und Leistungsbaseline zum Erstellen von Datenrasterkomponenten. QuickGrid ist hochgradig optimiert und verwendet erweiterte Techniken, um eine optimale Renderingleistung zu erzielen.

Paket

Fügen Sie einen Paketverweis für das Microsoft.AspNetCore.Components.QuickGrid-Paket hinzu.

Hinweis

Einen Leitfaden zum Hinzufügen von Paketen zu .NET-Apps finden Sie in Installieren und Verwalten von Paketen unter Workflow der Nutzung von Paketen (NuGet-Dokumentation). Überprüfen Sie unter NuGet.org, ob die richtige Paketversion verwendet wird.

Beispiel-App

Verschiedene QuickGrid-Demonstrationen finden Sie unter QuickGrid für Blazor-Beipiel-App. Die Demowebsite wird auf GitHub Pages gehostet. Die Website wird dank statischen Prerenderings mithilfe des von der Community verwalteten BlazorWasmPrerendering.Build-GitHub-Projekts schnell geladen.

QuickGrid-Implementierung

So implementieren Sie eine QuickGrid-Komponente:

  • Geben Sie Tags für die QuickGrid-Komponente im Razor-Markup (<QuickGrid>...</QuickGrid>) an.
  • Benennen Sie eine abfragbare Datenquelle für das Raster. Verwenden Sie eine der folgenden Datenquellen:
    • Items: Ein Nullwerte zulassendes IQueryable<TGridItem>, wobei TGridItem der Datentyp ist, der durch jede Zeile im Raster dargestellt wird.
    • ItemsProvider: Ein Rückruf, der Daten für das Raster bereitstellt.
  • Class: Ein optionaler CSS-Klassenname. Falls angegeben, ist der Klassenname im class-Attribut der gerenderten Tabelle enthalten.
  • Theme: Ein Designname (Standardwert: default). Dies wirkt sich darauf aus, welche Formatregeln mit der Tabelle übereinstimmen.
  • Virtualize: Wenn „true“, wird das Raster mit Virtualisierung gerendert. Dies wird normalerweise in Verbindung mit dem Scrollen verwendet und bewirkt, dass das Raster nur die Daten um den aktuellen Scrollviewport abruft und rendert. Dies kann die Leistung beim Scrollen durch große Datasets erheblich verbessern. Wenn Sie Virtualize verwenden, sollten Sie einen Wert für ItemSize angeben und müssen sicherstellen, dass jede Zeile mit einer konstanten Höhe gerendert wird. Im Allgemeinen sollten Sie Virtualize nicht verwenden, wenn die Menge der gerenderten Daten klein ist, oder Sie die Paginierung verwenden.
  • ItemSize: Gilt nur bei Verwendung von Virtualize. ItemSize definiert eine erwartete Höhe in Pixeln für jede Zeile, sodass der Virtualisierungsmechanismus die richtige Anzahl von Elementen abrufen kann, die der Anzeigegröße entspricht, und um genaues Scrollen sicherzustellen.
  • ItemKey: Definiert optional einen Wert für @key für jede gerenderte Zeile. In der Regel dient dies dazu, einen eindeutigen Bezeichner, z. B. einen Primärschlüsselwert, für jedes Datenelement anzugeben. So kann das Raster die Zuordnung zwischen Zeilenelementen und Datenelementen auf ihren eindeutigen Bezeichnern basierend beibehalten, auch wenn die TGridItem-Instanzen durch neue Kopien ersetzt werden (z. B. nach einer neuen Abfrage des zugrunde liegenden Datenspeichers). Wenn nicht festgelegt, ist @key die TGridItem-Instanz.
  • OverscanCount: Definiert, wie viele zusätzliche Elemente vor und nach dem sichtbaren Bereich gerendert werden sollen, um die Renderingfrequenz während des Scrollens zu verringern. Höhere Werte können den Bildlauf beim Scrollen verbessern, indem mehr Elemente außerhalb des sichtbaren Bereichs gerendert werden. Aus diesem Grund können sie aber auch zu einer Erhöhung der anfänglichen Ladezeiten führen. Es wird empfohlen, einen guten Ausgleich zwischen der Größe Ihres Datasets und Ihren Anforderungen an die Benutzerfreundlichkeit zu finden. Der Standardwert ist 3. Nur bei Verwendung von Virtualize verfügbar.
  • Pagination: Verknüpft diese TGridItem-Instanz optional mit einem PaginationState-Modell, sodass das Raster nur die aktuelle Datenseite abruft und rendert. Normalerweise wird dies in Verbindung mit einer Paginator-Komponente oder einer anderen Benutzeroberflächenlogik verwendet, die die bereitgestellte PaginationState-Instanz anzeigt und aktualisiert.
  • Geben Sie in dem QuickGrid untergeordneten Inhalt (RenderFragment) PropertyColumn<TGridItem,TProp>s an, die TGridItem-Spalten darstellen, deren Zellen Werte anzeigen:
    • Property: Definiert den Wert, der in den Zellen dieser Spalten angezeigt werden soll.
    • Format: Gibt optional eine Formatzeichenfolge für den Wert an. Die Verwendung von Format erfordert, dass der TProp-Typ IFormattable implementiert.
    • Sortable: Gibt an, ob die Daten nach dieser Spalte sortierbar sein sollen. Der Standardwert kann je nach Spaltentyp variieren. Beispielsweise ist eine TemplateColumn<TGridItem> standardmäßig sortierbar, wenn ein SortBy-Parameter angegeben ist.
    • InitialSortDirection: Gibt die Sortierrichtung an, wenn IsDefaultSortColumn gleich true ist.
    • IsDefaultSortColumn: Gibt an, ob diese Spalte standardmäßig sortiert werden sollte.
    • PlaceholderTemplate: Falls angegeben, verwenden virtualisierte Raster diese Vorlage, um Zellen zu rendern, deren Daten nicht geladen wurden.
    • HeaderTemplate: Eine optionale Vorlage für die Kopfzelle dieser Spalte. Wenn nicht angegeben, enthält die Standardvorlage für Kopfzeilen die Title, sowie alle anwendbaren Sortierindikatoren und Optionsschaltflächen.
    • Title: Titeltext für die Spalte. Der Titel wird automatisch gerendert, wenn HeaderTemplate nicht verwendet wird.
  • Geben Sie Tags für die QuickGrid-Komponente im Razor-Markup (<QuickGrid>...</QuickGrid>) an.
  • Benennen Sie eine abfragbare Datenquelle für das Raster. Verwenden Sie eine der folgenden Datenquellen:
    • Items: Ein Nullwerte zulassendes IQueryable<TGridItem>, wobei TGridItem der Datentyp ist, der durch jede Zeile im Raster dargestellt wird.
    • ItemsProvider: Ein Rückruf, der Daten für das Raster bereitstellt.
  • Class: Ein optionaler CSS-Klassenname. Falls angegeben, ist der Klassenname im class-Attribut der gerenderten Tabelle enthalten.
  • Theme: Ein Designname (Standardwert: default). Dies wirkt sich darauf aus, welche Formatregeln mit der Tabelle übereinstimmen.
  • Virtualize: Wenn „true“, wird das Raster mit Virtualisierung gerendert. Dies wird normalerweise in Verbindung mit dem Scrollen verwendet und bewirkt, dass das Raster nur die Daten um den aktuellen Scrollviewport abruft und rendert. Dies kann die Leistung beim Scrollen durch große Datasets erheblich verbessern. Wenn Sie Virtualize verwenden, sollten Sie einen Wert für ItemSize angeben und müssen sicherstellen, dass jede Zeile mit einer konstanten Höhe gerendert wird. Im Allgemeinen sollten Sie Virtualize nicht verwenden, wenn die Menge der gerenderten Daten klein ist, oder Sie die Paginierung verwenden.
  • ItemSize: Gilt nur bei Verwendung von Virtualize. ItemSize definiert eine erwartete Höhe in Pixeln für jede Zeile, sodass der Virtualisierungsmechanismus die richtige Anzahl von Elementen abrufen kann, die der Anzeigegröße entspricht, und um genaues Scrollen sicherzustellen.
  • ItemKey: Definiert optional einen Wert für @key für jede gerenderte Zeile. In der Regel dient dies dazu, einen eindeutigen Bezeichner, z. B. einen Primärschlüsselwert, für jedes Datenelement anzugeben. So kann das Raster die Zuordnung zwischen Zeilenelementen und Datenelementen auf ihren eindeutigen Bezeichnern basierend beibehalten, auch wenn die TGridItem-Instanzen durch neue Kopien ersetzt werden (z. B. nach einer neuen Abfrage des zugrunde liegenden Datenspeichers). Wenn nicht festgelegt, ist @key die TGridItem-Instanz.
  • Pagination: Verknüpft diese TGridItem-Instanz optional mit einem PaginationState-Modell, sodass das Raster nur die aktuelle Datenseite abruft und rendert. Normalerweise wird dies in Verbindung mit einer Paginator-Komponente oder einer anderen Benutzeroberflächenlogik verwendet, die die bereitgestellte PaginationState-Instanz anzeigt und aktualisiert.
  • Geben Sie in dem QuickGrid untergeordneten Inhalt (RenderFragment) PropertyColumn<TGridItem,TProp>s an, die TGridItem-Spalten darstellen, deren Zellen Werte anzeigen:
    • Property: Definiert den Wert, der in den Zellen dieser Spalten angezeigt werden soll.
    • Format: Gibt optional eine Formatzeichenfolge für den Wert an. Die Verwendung von Format erfordert, dass der TProp-Typ IFormattable implementiert.
    • Sortable: Gibt an, ob die Daten nach dieser Spalte sortierbar sein sollen. Der Standardwert kann je nach Spaltentyp variieren. Beispielsweise ist eine TemplateColumn<TGridItem> standardmäßig sortierbar, wenn ein SortBy-Parameter angegeben ist.
    • InitialSortDirection: Gibt die Sortierrichtung an, wenn IsDefaultSortColumn gleich true ist.
    • IsDefaultSortColumn: Gibt an, ob diese Spalte standardmäßig sortiert werden sollte.
    • PlaceholderTemplate: Falls angegeben, verwenden virtualisierte Raster diese Vorlage, um Zellen zu rendern, deren Daten nicht geladen wurden.
    • HeaderTemplate: Eine optionale Vorlage für die Kopfzelle dieser Spalte. Wenn nicht angegeben, enthält die Standardvorlage für Kopfzeilen die Title, sowie alle anwendbaren Sortierindikatoren und Optionsschaltflächen.
    • Title: Titeltext für die Spalte. Der Titel wird automatisch gerendert, wenn HeaderTemplate nicht verwendet wird.

Fügen Sie beispielsweise die folgende Komponente hinzu, um ein Raster zu rendern.

Für Blazor-Web-Apps muss sich die QuickGrid-Komponente in einem interaktiven Rendermodus befinden, um interaktive Features wie Auslagern und Sortierung zu aktivieren.

PromotionGrid.razor:

@page "/promotion-grid"
@using Microsoft.AspNetCore.Components.QuickGrid

<PageTitle>Promotion Grid</PageTitle>

<h1>Promotion Grid Example</h1>

<QuickGrid Items="@people">
    <PropertyColumn Property="@(p => p.PersonId)" Sortable="true" />
    <PropertyColumn Property="@(p => p.Name)" Sortable="true" />
    <PropertyColumn Property="@(p => p.PromotionDate)" Format="yyyy-MM-dd" Sortable="true" />
</QuickGrid>

@code {
    private record Person(int PersonId, string Name, DateOnly PromotionDate);

    private IQueryable<Person> people = new[]
    {
        new Person(10895, "Jean Martin", new DateOnly(1985, 3, 16)),
        new Person(10944, "António Langa", new DateOnly(1991, 12, 1)),
        new Person(11203, "Julie Smith", new DateOnly(1958, 10, 10)),
        new Person(11205, "Nur Sari", new DateOnly(1922, 4, 27)),
        new Person(11898, "Jose Hernandez", new DateOnly(2011, 5, 3)),
        new Person(12130, "Kenji Sato", new DateOnly(2004, 1, 9)),
    }.AsQueryable();
}

Greifen Sie in einem Browser über den relativen Pfad /promotion-grid auf die Komponente zu.

Es gibt keine aktuellen Pläne, QuickGrid mit Features zu erweitern, die in vollständigen kommerziellen Rastern häufig angeboten werden, z. B. hierarchische Zeilen, durch Ziehen neu anzuordnende Spalten oder Excel-ähnliche Bereichsauswahlen. Wenn Sie erweiterte Features benötigen, die Sie nicht selbst entwickeln möchten, verwenden Sie weiterhin Raster von Drittanbietern.

Sortieren nach Spalten

Die QuickGrid-Komponente kann Elemente nach Spalten sortieren. In Blazor-Web-Apps muss sich die Komponente in einem interaktiven Rendermodus befinden.

Fügen Sie Sortable="true" (Sortable) zum Tag PropertyColumn<TGridItem,TProp> hinzu:

<PropertyColumn Property="..." Sortable="true" />

Sortieren Sie in der ausgeführten App die QuickGrid-Spalte, indem Sie den gerenderten Spaltentitel auswählen.

Seitenelemente mit einer Paginator-Komponente

Die QuickGrid-Komponente kann Daten aus der Datenquelle auslagern. In Blazor-Web-Apps muss sich die Komponente zum Auslagern in einem interaktiven Rendermodus befinden.

Fügen Sie dem @code-Block der Komponente eine PaginationState-Instanz hinzu. Legen Sie die ItemsPerPage auf die Anzahl der Elemente fest, die pro Seite angezeigt werden sollen. Im folgenden Beispiel wird die Instanz pagination benannt, und zehn Elemente pro Seite werden festgelegt:

PaginationState pagination = new PaginationState { ItemsPerPage = 10 };

Legen Sie die Pagination-Eigenschaft der QuickGrid-Komponente auf @pagination fest:

<QuickGrid Items="..." Pagination="@pagination">

Um eine Benutzeroberfläche für die Paginierung bereitzustellen, fügen Sie oben, unten oder sowohl oberhalb als auch unterhalb der QuickGrid-Komponente eine Paginator-Komponente hinzu. Legen Sie Paginator.State auf @pagination fest:

<Paginator State="@pagination" />

Durchlaufen Sie in der ausgeführten App die Elemente mithilfe einer gerenderten Paginator-Komponente.

Benutzerdefiniertes Attribute und Stile

QuickGrid unterstützt auch das Übergeben von benutzerdefinierten Attributen und Stilklassen (Class) an das gerenderte Tabellenelement:

<QuickGrid Items="..." custom-attribute="value" Class="custom-class">

EF Core-Datenquelle (Entity Framework Core)

DbContext von EF Core stellt eine DbSet<TEntity>-Eigenschaft für jede Tabelle in der Datenbank bereit. Geben Sie die Eigenschaft für den Parameter Items an.

Im folgenden Beispiel wird die People-DbSet<TEntity> (Tabelle) als Datenquelle verwendet:

@inject ApplicationDbContext AppDbContext

<QuickGrid Items="@AppDbContext.People">
    ...
</QuickGrid>

Sie können auch einen beliebigen EF-unterstützten LINQ-Operator verwenden, um die Daten zu filtern, bevor Sie sie an den Parameter Items übergeben.

Im folgenden Beispiel werden Dokumente nach einer Kategorie-ID gefiltert:

<QuickGrid Items="@AppDbContext.Documents.Where(d => d.CategoryId == categoryId)">
    ...
</QuickGrid>

QuickGrid erkennt von EF bereitgestellte IQueryable-Instanzen und weiß, wie Abfragen für mehr Effizienz asynchron aufgelöst werden.

Fügen Sie zunächst einen Paketverweis für das NuGet-Paket Microsoft.AspNetCore.Components.QuickGrid.EntityFrameworkAdapter hinzu.

Hinweis

Einen Leitfaden zum Hinzufügen von Paketen zu .NET-Apps finden Sie in Installieren und Verwalten von Paketen unter Workflow der Nutzung von Paketen (NuGet-Dokumentation). Überprüfen Sie unter NuGet.org, ob die richtige Paketversion verwendet wird.

Rufen Sie AddQuickGridEntityFrameworkAdapter in der Dienstsammlung in der Datei Program auf, um eine Implementierung von IAsyncQueryExecutor mit EF-Unterstützung zu registrieren:

builder.Services.AddQuickGridEntityFrameworkAdapter();

Unterstützung für Anzeigenamen

Ein Spaltentitel kann mithilfe von ColumnBase<TGridItem>.Title im Tag von PropertyColumn<TGridItem,TProp> zugewiesen werden. Im folgenden Filmbeispiel erhält die Spalte den Namen „Release Date“ für die Daten zum Filmstartdatum in der Spalte:

<PropertyColumn Property="movie => movie.ReleaseDate" Title="Release Date" />

Das Verwalten von Spaltentiteln (Namen) aus gebundenen Modelleigenschaften ist in der Regel jedoch die bessere Option für die Verwaltung einer App. Ein Modell kann den Anzeigenamen einer Eigenschaft mit dem [Display]-Attribut steuern. Im folgenden Beispiel gibt das Modell für seine ReleaseDate-Eigenschaft den Anzeigenamen „Release Date“ für das Startdatum eines Films an:

[Display(Name = "Release Date")]
public DateTime ReleaseDate { get; set; }

Damit die QuickGrid-Komponente DisplayAttribute.Name verwenden kann, müssen Sie PropertyColumn<TGridItem,TProp> entweder in der Komponente oder in einer separaten Klasse als Unterklasse definieren:

public class DisplayNameColumn<TGridItem, TProp> : PropertyColumn<TGridItem, TProp>
{
    protected override void OnParametersSet()
    {
        if (Title is null && Property.Body is MemberExpression memberExpression)
        {
            var memberInfo = memberExpression.Member;
            Title = 
                memberInfo.GetCustomAttribute<DisplayNameAttribute>().DisplayName ??
                memberInfo.GetCustomAttribute<DisplayAttribute>().Name ??
                memberInfo.Name;
        }

        base.OnParametersSet();
    }
}

Verwenden Sie die Unterklasse in der Komponente QuickGrid. Im folgenden Beispiel wird die vorangehende DisplayNameColumn verwendet. Der Name „Release Date“ wird vom [Display]-Attribut im Modell bereitgestellt, sodass Title nicht angegeben werden muss:

<DisplayNameColumn Property="movie => movie.ReleaseDate" />

Das [DisplayName]-Attribut wird ebenfalls unterstützt:

[DisplayName("Release Date")]
public DateTime ReleaseDate { get; set; }

Das Attribut [Display] wird jedoch empfohlen, da es zusätzliche Eigenschaften bereitstellt. Beispielsweise bietet das Attribut [Display] die Möglichkeit, einen Ressourcentyp für die Lokalisierung zuzuweisen.

Remotedaten

In Blazor WebAssembly-Apps ist das Abrufen von Daten aus einer JSON-basierten Web-API auf einem Server eine gängige Anforderung. Verwenden Sie den Parameter ItemsProvider, um nur die Daten abzurufen, die für die aktuelle Seite/den Viewport von Daten erforderlich sind, und um Sortier- oder Filterregeln auf dem Server anzuwenden.

ItemsProvider kann auch in einer serverseitigen Blazor-App verwendet werden, wenn die App zum Abfragen eines externen Endpunkts oder in anderen Fällen erforderlich ist, in denen die Anforderungen nicht von IQueryable abgedeckt werden.

Geben Sie einen Rückruf an, der dem Delegattyp GridItemsProvider<TGridItem> entspricht, wobei TGridItem der Datentyp ist, der im Raster angezeigt wird. Dem Rückruf wird ein Parameter vom Typ GridItemsProviderRequest<TGridItem> zugewiesen, der den Startindex, die maximale Zeilenanzahl und die Sortierreihenfolge der zurückzugebenden Daten angibt. Neben der Rückgabe der übereinstimmenden Elemente ist auch eine Gesamtzahl der Elemente (totalItemCount) erforderlich, damit Paging und Virtualisierung ordnungsgemäß funktionieren.

Im folgenden Beispiel werden Daten aus der öffentlichen OpenFDA Food Enforcement-Datenbank abgerufen.

GridItemsProvider<TGridItem> konvertiert GridItemsProviderRequest<TGridItem> in eine Abfrage für die OpenFDA-Datenbank. Abfrageparameter werden in das jeweilige URL-Format übersetzt, das von der externen JSON-API unterstützt wird. Es ist nur möglich, Sortier- und Filtervorgänge über Sortierung und Filterung durchzuführen, die von der externen API unterstützt wird. Der OpenFDA-Endpunkt unterstützt keine Sortierung, sodass keine der Spalten als sortierbar gekennzeichnet ist. Er unterstützt jedoch das Überspringen von Datensätzen (Parameter skip) und das Einschränken der Rückgabe von Datensätzen (Parameter limit), sodass die Komponente die Virtualisierung aktivieren und schnell einen Bildlauf durch Zehntausende von Datensätzen durchführen kann.

FoodRecalls.razor:

@page "/food-recalls"
@inject HttpClient Http
@inject NavigationManager NavManager

<PageTitle>Food Recalls</PageTitle>

<h1>OpenFDA Food Recalls</h1>

<div class="grid" tabindex="-1">
    <QuickGrid ItemsProvider="@foodRecallProvider" Virtualize="true">
        <PropertyColumn Title="ID" Property="@(c => c.Event_Id)" />
        <PropertyColumn Property="@(c => c.State)" />
        <PropertyColumn Property="@(c => c.City)" />
        <PropertyColumn Title="Company" Property="@(c => c.Recalling_Firm)" />
        <PropertyColumn Property="@(c => c.Status)" />
    </QuickGrid>
</div>

<p>Total: <strong>@numResults results found</strong></p>

@code {
    GridItemsProvider<FoodRecall>? foodRecallProvider;
    int numResults;

    protected override async Task OnInitializedAsync()
    {
        foodRecallProvider = async req =>
        {
            var url = NavManager.GetUriWithQueryParameters(
                "https://api.fda.gov/food/enforcement.json", 
                new Dictionary<string, object?>
            {
                { "skip", req.StartIndex },
                { "limit", req.Count },
            });

            var response = await Http.GetFromJsonAsync<FoodRecallQueryResult>(
                url, req.CancellationToken);

            return GridItemsProviderResult.From(
                items: response!.Results,
                totalItemCount: response!.Meta.Results.Total);
        };

        numResults = (await Http.GetFromJsonAsync<FoodRecallQueryResult>(
            "https://api.fda.gov/food/enforcement.json"))!.Meta.Results.Total;
    }
}

Weitere Informationen zum Aufrufen von Web-APIs finden Sie unter Aufrufen einer Web-API aus einer ASP.NET Core Blazor-App.

QuickGrid-Gerüst

Das QuickGrid-Gerüst erstellt Gerüste für Razor-Komponenten mit QuickGrid zum Anzeigen von Daten aus einer Datenbank.

Das Gerüst generiert grundlegende Create-, Read-, Update- und Delete-Seiten (CRUD), die auf einem Entity Framework Core-Datenmodell basieren. Sie können ein Gerüst für einzelne Seiten oder alle CRUD-Seiten erstellen. Sie wählen die Modellklasse und DbContext aus, und erstellen optional ein neues DbContext-Modell aus, falls erforderlich.

Die Razor-Gerüstkomponenten werden dem Projekt in einem generierten Ordner hinzugefügt, der nach der Modellklasse benannt ist. Die generierte Index-Komponente verwendet eine QuickGrid-Komponente, um die Daten anzuzeigen. Passen Sie die generierten Komponenten nach Bedarf an, und aktivieren Sie Interaktivität, um interaktive Features wie Auslagern, Sortieren und Filtern zu nutzen.

Die vom Gerüst erzeugten Komponenten erfordern serverseitiges Rendering (SSR), sodass sie bei der Ausführung auf WebAssembly nicht unterstützt werden.

Klicken Sie mit der rechten Maustaste auf den Ordner Components/Pages, und wählen Sie Hinzufügen>Neues Gerüstelement aus.

Wenn das Dialogfeld Neues Gerüstelement hinzufügen mit Installiert>Allgemein>Razor-Komponente geöffnet ist, wählen Sie Razor-Komponenten mithilfe von Entity Framework (CRUD) aus. Wählen Sie die Schaltfläche Hinzufügen aus.

Vervollständigen Sie das Dialogfeld Razor-Komponenten mithilfe von Entity Framework (CRUD):

  • Die Dropdownliste Vorlage enthält weitere Vorlagen speziell zum Erstellen von Erstellen-, Bearbeiten-, Löschen-, Details- und Liste-Komponenten. Diese Dropdownliste ist praktisch, wenn Sie nur einen bestimmten Typ von Komponentengerüst für eine Modellklasse erstellen müssen. Die Dropdownliste Vorlage sollte weiterhin auf CRUD festgelegt sein, um einen vollständigen Komponentensatz zu erstellen.
  • Wählen Sie in der Dropdownliste Modellklasse die Modellklasse aus. Für die generierten Komponenten wird aus dem Modellnamen ein Ordner erstellt. Wenn die Modellklasse Movieheißt, wird der Ordner automatisch MoviePages genannt.
  • Wählen Sie für DbContext-Klasse einen vorhandenen Datenbankkontext aus, oder wählen Sie die Schaltfläche + (Pluszeichen) und das modale Dialogfeld Datenkontext hinzufügen aus, um einen neuen Datenbankkontext hinzuzufügen.
  • Nachdem das modale Dialogfeld geschlossen wurde, wird die Dropdownliste Datenbankanbieter als Standard auf SQL Server festgelegt. Sie können den entsprechenden Anbieter für die Datenbank auswählen, die Sie verwenden. Zu den Optionen gehören SQL Server, SQLite, PostgreSQL und Azure Cosmos DB.
  • Wählen Sie Hinzufügen.