Wprowadzenie do programu EF Core
W tym samouczku utworzysz aplikację konsolową platformy .NET Core, która wykonuje dostęp do danych względem bazy danych SQLite przy użyciu platformy Entity Framework Core.
Możesz skorzystać z samouczka przy użyciu programu Visual Studio w systemie Windows lub interfejsu wiersza polecenia platformy .NET w systemach Windows, macOS lub Linux.
Zapoznaj się z przykładem tego artykułu w witrynie GitHub.
Wymagania wstępne
Zainstaluj następujące oprogramowanie:
Tworzenie nowego projektu
dotnet new console -o EFGetStarted
cd EFGetStarted
Instalowanie programu Entity Framework Core
Aby zainstalować program EF Core, należy zainstalować pakiet dla dostawców baz danych EF Core, których chcesz użyć. W tym samouczku jest używana funkcja SQLite, ponieważ jest ona uruchamiana na wszystkich platformach, które obsługuje platforma .NET. Aby uzyskać listę dostępnych dostawców, zobacz Dostawcy baz danych.
dotnet add package Microsoft.EntityFrameworkCore.Sqlite
Tworzenie modelu
Zdefiniuj klasę kontekstu i klasy jednostek tworzące model.
- W katalogu projektu utwórz plik Model.cs przy użyciu następującego kodu
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; }
}
Program EF Core może również odtworzyć model z istniejącej bazy danych.
Porada: Ta aplikacja celowo zachowuje prostotę w celu zapewnienia przejrzystości. ciągi Połączenie ion nie powinny być przechowywane w kodzie dla aplikacji produkcyjnych. Możesz również podzielić każdą klasę języka C# na własny plik.
Tworzenie bazy danych
W poniższych krokach są używane migracje do tworzenia bazy danych.
Uruchom następujące polecenia:
dotnet tool install --global dotnet-ef dotnet add package Microsoft.EntityFrameworkCore.Design dotnet ef migrations add InitialCreate dotnet ef database update
Spowoduje to zainstalowanie narzędzia dotnet ef i pakietu projektowego wymaganego do uruchomienia polecenia w projekcie. Polecenie
migrations
tworzy szkielet migracji w celu utworzenia początkowego zestawu tabel dla modelu. Poleceniedatabase update
tworzy bazę danych i stosuje do niej nową migrację.
Tworzenie, odczytywanie, aktualizowanie i usuwanie
Otwórz plik Program.cs i zastąp zawartość następującym kodem:
using System; using System.Linq; 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" }); db.SaveChanges(); // Read Console.WriteLine("Querying for a blog"); var blog = db.Blogs .OrderBy(b => b.BlogId) .First(); // 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!" }); db.SaveChanges(); // Delete Console.WriteLine("Delete the blog"); db.Remove(blog); db.SaveChanges();
Uruchom aplikację
Następne kroki
- Postępuj zgodnie z samouczkiem ASP.NET Core, aby używać programu EF Core w aplikacji internetowej
- Dowiedz się więcej o wyrażeniach zapytań LINQ
- Konfigurowanie modelu w celu określenia elementów, takich jak wymagana i maksymalna długość
- Używanie migracji do aktualizowania schematu bazy danych po zmianie modelu