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.
In diesem Lernprogramm erstellen Sie eine .NET Core-Konsolen-App, die den Datenzugriff auf eine SQLite-Datenbank mithilfe von Entity Framework Core durchführt.
Sie können das Lernprogramm mithilfe von Visual Studio unter Windows oder mithilfe der .NET CLI unter Windows, macOS oder Linux befolgen.
Sehen Sie sich das Beispiel dieses Artikels auf GitHub an.
Voraussetzungen
Installieren Sie die folgende Software:
Erstellen eines neuen Projekts
dotnet new console -o EFGetStarted
cd EFGetStarted
Installieren von Entity Framework Core
Um EF Core zu installieren, installieren Sie das Paket für den EF Core-Datenbankanbieter(n), auf den Sie abzielen möchten. In diesem Lernprogramm wird SQLite verwendet, da es auf allen Plattformen ausgeführt wird, die .NET unterstützt. Eine Liste der verfügbaren Anbieter finden Sie unter "Datenbankanbieter".
dotnet add package Microsoft.EntityFrameworkCore.Sqlite
Erstellen des Modells
Definieren Sie eine Kontextklasse und Entitätsklassen, aus denen das Modell besteht.
- Erstellen Sie im Projektverzeichnis Model.cs mit dem folgenden Code:
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
public string DbPath { get; }
public BloggingContext()
{
var folder = Environment.SpecialFolder.LocalApplicationData;
var path = Environment.GetFolderPath(folder);
DbPath = System.IO.Path.Join(path, "blogging.db");
}
// The following configures EF to create a Sqlite database file in the
// special "local" folder for your platform.
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlite($"Data Source={DbPath}");
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public List<Post> Posts { get; } = new();
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
EF Core kann auch ein Modell aus einer vorhandenen Datenbank rückentwickeln.
Tipp: Diese Anwendung behält die Dinge absichtlich einfach zur Übersichtlichkeit bei. Verbindungszeichenfolgen sollten nicht im Code für Produktionsanwendungen gespeichert werden. Sie können auch jede C#-Klasse in eine eigene Datei aufteilen.
Erstellen der Datenbank
Die folgenden Schritte verwenden Migrationen zum Erstellen einer Datenbank.
Führen Sie die folgenden Befehle aus:
dotnet tool install --global dotnet-ef dotnet add package Microsoft.EntityFrameworkCore.Design dotnet ef migrations add InitialCreate dotnet ef database update
Dadurch werden dotnet ef und das Designpaket installiert, das zum Ausführen des Befehls für ein Projekt erforderlich ist. Der
migrations
Befehl erstellt ein Gerüst für eine Migration, um die anfängliche Gruppe von Tabellen für das Modell zu erstellen. Derdatabase update
Befehl erstellt die Datenbank und wendet die neue Migration darauf an.
Erstellen, Lesen, Aktualisieren & Löschen
Öffnen Sie Program.cs , und ersetzen Sie den Inhalt durch den folgenden Code:
using System; using System.Linq; using Microsoft.EntityFrameworkCore; using var db = new BloggingContext(); // Note: This sample requires the database to be created before running. Console.WriteLine($"Database path: {db.DbPath}."); // Create Console.WriteLine("Inserting a new blog"); db.Add(new Blog { Url = "http://blogs.msdn.com/adonet" }); await db.SaveChangesAsync(); // Read Console.WriteLine("Querying for a blog"); var blog = await db.Blogs .OrderBy(b => b.BlogId) .FirstAsync(); // Update Console.WriteLine("Updating the blog and adding a post"); blog.Url = "https://devblogs.microsoft.com/dotnet"; blog.Posts.Add( new Post { Title = "Hello World", Content = "I wrote an app using EF Core!" }); await db.SaveChangesAsync(); // Delete Console.WriteLine("Delete the blog"); db.Remove(blog); await db.SaveChangesAsync();
App starten
dotnet run
Nächste Schritte
- Folgen Sie dem ASP.NET Core-Lernprogramm , um EF Core in einer Web-App zu verwenden.
- Weitere Informationen zu LINQ-Abfrageausdrücken
- Konfigurieren Sie Ihr Modell, um Elemente wie erforderliche und maximale Länge anzugeben.
- Verwenden von Migrationen zum Aktualisieren des Datenbankschemas nach dem Ändern des Modells