Wprowadzenie do podstawowych EF na .NET Framework za pomocą nowej bazy danychGetting started with EF Core on .NET Framework with a New Database

W tym przewodniku zostanie utworzona aplikacja konsolowa, która wykonuje dostęp do podstawowych danych w bazie danych programu Microsoft SQL Server przy użyciu programu Entity Framework.In this walkthrough, you will build a console application that performs basic data access against a Microsoft SQL Server database using Entity Framework. Migracje użyje do utworzenia bazy danych z modelu.You will use migrations to create the database from your model.

Porada

Można wyświetlić w tym artykule próbki w witrynie GitHub.You can view this article's sample on GitHub.

Wstępnie wymagane składnikiPrerequisites

Do przeprowadzenia tego instruktażu potrzebne są następujące wymagania wstępne:The following prerequisites are needed to complete this walkthrough:

Tworzenie nowego projektuCreate a new project

  • Otwórz program Visual StudioOpen Visual Studio

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

  • Z menu po lewej stronie wybierz Szablony > Visual C# > klasycznego pulpitu systemu WindowsFrom the left menu select Templates > Visual C# > Windows Classic Desktop

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

  • Upewnij się, ma być przeznaczona dla .NET Framework 4.5.1 lub nowszyEnsure you are targeting .NET Framework 4.5.1 or later

  • Nadaj nazwę projektu, a następnie kliknij przycisk OKGive the project a name and click OK

Instalowanie programu Entity FrameworkInstall Entity Framework

Aby użyć EF podstawowe, należy zainstalować pakiet dla powszechne bazy danych, który ma być docelowa.To use EF Core, install the package for the database provider(s) you want to target. W tym przewodniku zastosowano programu SQL Server.This walkthrough uses SQL Server. Lista dostępnych dostawców dostawcy bazy danych.For a list of available providers see Database Providers.

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

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

W dalszej części tego przewodnika również użyjemy narzędzi Framework niektóre jednostki do obsługi bazy danych.Later in this walkthrough we will also be using some Entity Framework Tools to maintain the database. Dlatego zostanie zainstalowany pakiet narzędzi również.So we will install the tools package as well.

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

Tworzenie modeluCreate your model

Teraz nadszedł czas do definiowania klas kontekstu i jednostek, wchodzące w skład modelu.Now it's time to define a context and entity classes that make up your model.

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

  • Wprowadź Model.cs jako nazwy 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 EFGetStarted.ConsoleApp
{
    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 osobnym pliku, a ciąg połączenia App.Config pliku i jego odczytu przy użyciu ConfigurationManager.In a real application you would put each class in a separate file and put the connection string in the App.Config file and read it out using ConfigurationManager. Dla uproszczenia wprowadzamy wszystko w pliku jednego kodu dla tego samouczka.For the sake of simplicity, we are putting everything in a single code file for this tutorial.

Tworzenie bazy danychCreate your database

Teraz, gdy masz modelu można użyć migracji tworzenia bazy danych dla Ciebie.Now that you have a model, you can use migrations to create a database for you.

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

  • Uruchom Add-Migration MyFirstMigration Aby utworzyć szkielet migracji do utworzenia wstępnego zestawu tabel dla modelu.Run Add-Migration MyFirstMigration to scaffold a migration to create the initial set of tables for your model.

  • Uruchom Update-Database na zastosowanie nowych migracji w bazie danych.Run Update-Database to apply the new migration to the database. Ponieważ baza danych nie istnieje, zostanie on utworzony dla Ciebie przed zastosowaniem migracji.Because your database doesn't exist yet, it will be created for you before the migration is applied.

Porada

Jeśli wprowadzisz zmiany w przyszłości do modelu, możesz użyć Add-Migration polecenie, aby utworzyć szkielet nowych migracji dokonanie odpowiedniej schematu zmiany w bazie danych.If you make future changes to your 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 szkieletu kodu (i wszelkie wymagane zmiany wprowadzone), 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ć migracji, 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 your model

Można teraz używać modelu do uzyskania dostępu do danych.You can now use your 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 EFGetStarted.ConsoleApp
{
    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 jednego blogu jest zapisywana w bazie danych, a następnie szczegóły wszystkich blogi są podane w konsoli.You will see that one blog is saved to the database and then the details of all blogs are printed to the console.

obraz