Wprowadzenie do programu EF Core w programie .NET Framework za pomocą nowej bazy danychGetting started with EF Core on .NET Framework with a New Database

W tym samouczku utworzysz aplikację konsolową, która wykonuje dostęp do podstawowych danych względem bazy danych programu Microsoft SQL Server przy użyciu platformy Entity Framework.In this tutorial, you build a console application that performs basic data access against a Microsoft SQL Server database using Entity Framework. Migracje umożliwia tworzenie bazy danych z modelu.You use migrations to create the database from a model.

Wyświetlanie przykładowych w tym artykule w witrynie GitHub.View this article's sample on GitHub.

Wymagania wstępnePrerequisites

Tworzenie nowego projektuCreate a new project

  • Otwórz program Visual Studio 2017Open Visual Studio 2017

  • Plik > Nowy > Projekt...File > New > Project...

  • Z menu po lewej stronie wybierz zainstalowane > Visual C# > Windows DesktopFrom the left menu select Installed > Visual C# > Windows Desktop

  • Wybierz Aplikacja konsoli (.NET Framework) szablonu projektuSelect the Console App (.NET Framework) project template

  • Upewnij się, że projekt jest ukierunkowany platformy .NET Framework 4.6.1 lub nowszejMake sure that the project targets .NET Framework 4.6.1 or later

  • Nadaj projektowi nazwę ConsoleApp.NewDb i kliknij przycisk OKName the project ConsoleApp.NewDb and click OK

Instalowanie programu Entity FrameworkInstall Entity Framework

Aby korzystać z programu EF Core, należy zainstalować pakiet dla dostawców bazy danych, który ma pod kątem.To use EF Core, install the package for the database provider(s) you want to target. Ten samouczek używa programu SQL Server.This tutorial uses SQL Server. Aby uzyskać listę dostępnych dostawców zobacz dostawcy baz danych.For a list of available providers see Database Providers.

  • Narzędzia > Menedżer pakietów NuGet > Konsola Menedżera pakietówTools > NuGet Package Manager > Package Manager Console

  • Uruchom Install-Package Microsoft.EntityFrameworkCore.SqlServerRun Install-Package Microsoft.EntityFrameworkCore.SqlServer

W dalszej części tego samouczka użyjesz niektórych narzędzi Entity Framework Tools do obsługi bazy danych.Later in this tutorial you use some Entity Framework Tools to maintain the database. Więc Zainstaluj również pakiet narzędzi.So install the tools package as well.

  • Uruchom Install-Package Microsoft.EntityFrameworkCore.ToolsRun Install-Package Microsoft.EntityFrameworkCore.Tools

Tworzenie modeluCreate the model

Teraz nadszedł czas, do definiowania klas kontekstu i jednostek, które tworzą model.Now it's time to define a context and entity classes that make up the model.

  • Projekt > Dodaj klasę...Project > Add Class...

  • Wprowadź Model.cs jako nazwę i kliknij przycisk OKEnter Model.cs as the name and click OK

  • Zastąp zawartość pliku następującym kodemReplace the contents of the file with the following code

    using Microsoft.EntityFrameworkCore;
    using System.Collections.Generic;
    
    namespace ConsoleApp.NewDb
    {
        public class BloggingContext : DbContext
        {
            public DbSet<Blog> Blogs { get; set; }
            public DbSet<Post> Posts { get; set; }
    
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;");
            }
        }
    
        public class Blog
        {
            public int BlogId { get; set; }
            public string Url { get; set; }
    
            public List<Post> Posts { get; set; }
        }
    
        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; }
        }
    }
    

Porada

W rzeczywistej aplikacji można będzie umieścić każda klasa w oddzielnym pliku, a parametry połączenia w zmiennej środowisku lub pliku konfiguracji.In a real application you would put each class in a separate file and put the connection string in a configuration file or environment variable. Dla uproszczenia wszystko jest w pliku pojedynczego kodu na potrzeby tego samouczka.For the sake of simplicity, everything is in a single code file for this tutorial.

Tworzenie bazy danychCreate the database

Teraz, gdy model, można użyć migracje utworzyć bazę danych.Now that you have a model, you can use migrations to create a database.

  • Narzędzia > Menedżer pakietów NuGet > Konsola Menedżera pakietówTools > NuGet Package Manager > Package Manager Console

  • Uruchom Add-Migration InitialCreate do tworzenia szkieletu migracji, aby utworzyć początkowy zestaw tabel dla modelu.Run Add-Migration InitialCreate to scaffold a migration to create the initial set of tables for the model.

  • Uruchom Update-Database zastosować nową migrację do bazy danych.Run Update-Database to apply the new migration to the database. Ponieważ baza danych nie istnieje, zostanie utworzony, przed zastosowaniem migracji.Because the database doesn't exist yet, it will be created before the migration is applied.

Porada

Jeśli wprowadzisz zmiany w modelu, można użyć Add-Migration polecenia do tworzenia szkieletu nowej migracji w celu sprawdzenia odpowiedni schemat zmienia się z bazą danych.If you make changes to the model, you can use the Add-Migration command to scaffold a new migration to make the corresponding schema changes to the database. Po zaznaczeniu tej opcji utworzony szkielet kodu (i wprowadzone wymagane zmiany), można użyć Update-Database polecenie, aby zastosować zmiany do bazy danych.Once you have checked the scaffolded code (and made any required changes), you can use the Update-Database command to apply the changes to the database.

Używa EF __EFMigrationsHistory tabeli w bazie danych, aby śledzić migracje, które zostały już zastosowane do bazy danych.EF uses a __EFMigrationsHistory table in the database to keep track of which migrations have already been applied to the database.

Użyj modeluUse the model

Można teraz używać modelu przeprowadzić dostępu do danych.You can now use the model to perform data access.

  • Otwórz Program.csOpen Program.cs

  • Zastąp zawartość pliku następującym kodemReplace the contents of the file with the following code

    using System;
    
    namespace ConsoleApp.NewDb
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (var db = new BloggingContext())
                {
                    db.Blogs.Add(new Blog { Url = "http://blogs.msdn.com/adonet" });
                    var count = db.SaveChanges();
                    Console.WriteLine("{0} records saved to database", count);
    
                    Console.WriteLine();
                    Console.WriteLine("All blogs in database:");
                    foreach (var blog in db.Blogs)
                    {
                        Console.WriteLine(" - {0}", blog.Url);
                    }
                }
            }
        }
    }
    
  • Debuguj > Uruchom bez debugowaniaDebug > Start Without Debugging

    Zobaczysz, że blogami jest zapisywany w bazie danych, a następnie szczegółowe informacje o wszystkich blogów są drukowane w konsoli.You see that one blog is saved to the database and then the details of all blogs are printed to the console.

    obraz

Dodatkowe zasobyAdditional Resources