Začínáme s EF Core
V tomto kurzu vytvoříte konzolovou aplikaci .NET Core, která provádí přístup k datům z databáze SQLite pomocí Entity Framework Core.
Kurz můžete sledovat pomocí sady Visual Studio ve Windows nebo pomocí .NET CLI ve Windows, macOS nebo Linuxu.
Podívejte se na ukázku tohoto článku na GitHubu.
Požadavky
Nainstalujte následující software:
Vytvoření nového projektu
dotnet new console -o EFGetStarted
cd EFGetStarted
Instalace Entity Framework Core
Pokud chcete nainstalovat EF Core, nainstalujete balíček pro poskytovatele databází EF Core, na které chcete cílit. Tento kurz používá SQLite, protože běží na všech platformách, které .NET podporuje. Seznam dostupných poskytovatelů najdete v tématu Zprostředkovatelé databáze.
dotnet add package Microsoft.EntityFrameworkCore.Sqlite
Vytvoření modelu
Definujte třídu kontextu a třídy entit, které tvoří model.
- V adresáři projektu vytvořte Model.cs s následujícím kódem.
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 může také zpětně analyzovat model z existující databáze.
Tip: Tato aplikace záměrně udržuje věci jednoduché pro přehlednost. Připojení řetězce by neměly být uloženy v kódu pro produkční aplikace. Můžete také chtít rozdělit jednotlivé třídy jazyka C# do vlastního souboru.
Vytvoření databáze
Následující kroky používají migrace k vytvoření databáze.
Spusťte následující příkazy:
dotnet tool install --global dotnet-ef dotnet add package Microsoft.EntityFrameworkCore.Design dotnet ef migrations add InitialCreate dotnet ef database update
Tím se nainstaluje dotnet ef a balíček návrhu, který je nutný ke spuštění příkazu v projektu. Příkaz
migrations
vygeneruje migraci, která vytvoří počáteční sadu tabulek pro model. Příkazdatabase update
vytvoří databázi a použije na ni novou migraci.
Vytvoření, čtení, aktualizace a odstranění
Otevřete Program.cs a nahraďte obsah následujícím kódem:
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();
Spustit aplikaci
dotnet run
Další kroky
- Pokud chcete ve webové aplikaci používat EF Core, postupujte podle kurzu ASP.NET Core.
- Další informace o výrazech dotazů LINQ
- Nakonfigurujte model tak, aby určil věci, jako je povinné a maximální délka.
- Použití migrací k aktualizaci schématu databáze po změně modelu