Začínáme s EF CoreGetting Started with EF Core

V tomto kurzu vytvoříte konzolovou aplikaci .NET Core, která provádí přístup k datům v databázi SQLite pomocí Entity Framework Core.In this tutorial, you create a .NET Core console app that performs data access against a SQLite database using Entity Framework Core.

Můžete postupovat podle kurzu pomocí sady Visual Studio ve Windows nebo pomocí .NET Core CLI ve Windows, macOS nebo Linux.You can follow the tutorial by using Visual Studio on Windows, or by using the .NET Core CLI on Windows, macOS, or Linux.

Podívejte se na ukázku tohoto článku na GitHubu.View this article's sample on GitHub.

PožadavkyPrerequisites

Nainstalujte následující software:Install the following software:

Vytvoření nového projektuCreate a new project

dotnet new console -o EFGetStarted
cd EFGetStarted

Nainstalovat Entity Framework CoreInstall Entity Framework Core

Chcete-li nainstalovat EF Core, nainstalujte balíček pro zprostředkovatele EF Corech databází, které chcete cílit.To install EF Core, you install the package for the EF Core database provider(s) you want to target. V tomto kurzu se používá SQLite, protože běží na všech platformách, které .NET Core podporuje.This tutorial uses SQLite because it runs on all platforms that .NET Core supports. Seznam dostupných zprostředkovatelů najdete v tématu poskytovatelé databází.For a list of available providers, see Database Providers.

dotnet add package Microsoft.EntityFrameworkCore.Sqlite

Vytvoření modeluCreate the model

Definujte třídu kontextu a třídy entit, které tvoří model.Define a context class and entity classes that make up the model.

  • V adresáři projektu vytvořte model.cs s následujícím kódem.In the project directory, create Model.cs with the following code
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;

namespace EFGetStarted
{
    public class BloggingContext : DbContext
    {
        public DbSet<Blog> Blogs { get; set; }
        public DbSet<Post> Posts { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder options)
            => options.UseSqlite("Data Source=blogging.db");
    }

    public class Blog
    {
        public int BlogId { get; set; }
        public string Url { get; set; }

        public List<Post> Posts { get; } = new List<Post>();
    }

    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é provádět zpětnou analýzu modelu z existující databáze.EF Core can also reverse engineer a model from an existing database.

Tip: v reálné aplikaci vložíte každou třídu do samostatného souboru a připojovací řetězec umístíte do konfiguračního souboru nebo proměnné prostředí.Tip: In a real app, you put each class in a separate file and put the connection string in a configuration file or environment variable. V případě jednoduchého kurzu je vše obsaženo v jednom souboru.To keep the tutorial simple, everything is contained in one file.

Vytvoření databázeCreate the database

V následujících krocích se k vytvoření databáze používají migrace .The following steps use migrations to create a database.

  • Spusťte následující příkazy:Run the following commands:

    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 návrhový balíček, který je nutný ke spuštění příkazu na projektu.This installs dotnet ef and the design package which is required to run the command on a project. Příkaz migrations vygeneruje migraci k vytvoření počáteční sady tabulek pro model.The migrations command scaffolds a migration to create the initial set of tables for the model. Příkaz database update vytvoří databázi a použije novou migraci na ni.The database update command creates the database and applies the new migration to it.

Vytvořit, číst, aktualizovat & OdstranitCreate, read, update & delete

  • Otevřete program.cs a nahraďte obsah následujícím kódem:Open Program.cs and replace the contents with the following code:

    using System;
    using System.Linq;
    
    namespace EFGetStarted
    {
        class Program
        {
            static void Main()
            {
                using (var db = new BloggingContext())
                {
                    // 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();
                }
            }
        }
    }
    

Spuštění aplikaceRun the app

dotnet run

Další krokyNext steps