Wprowadzenie do podstawowych EF na platformy ASP.NET Core nowej bazy danychGetting Started with EF Core on ASP.NET Core with a New database

W tym przykładzie utworzysz aplikacji platformy ASP.NET Core MVC, który wykonuje dostęp do podstawowych danych przy użyciu programu Entity Framework Core.In this walkthrough, you will build an ASP.NET Core MVC application that performs basic data access using Entity Framework Core. Migracje użyje do utworzenia bazy danych z modelu EF Core.You will use migrations to create the database from your EF Core model. Zobacz dodatkowe zasoby dla więcej samouczków Entity Framework Core.See Additional Resources for more Entity Framework Core tutorials.

Ten samouczek wymaga:This tutorial requires:

Porada

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

Utwórz nowy projekt w programie Visual Studio 2017 r.Create a new project in Visual Studio 2017

  • Plik > Nowy > ProjektFile > New > Project
  • Wybierz z menu po lewej stronie zainstalowana > Szablony > Visual C# > .NET Core.From the left menu select Installed > Templates > Visual C# > .NET Core.
  • Wybierz aplikacji sieci Web platformy ASP.NET Core.Select ASP.NET Core Web Application.
  • Wprowadź EFGetStarted.AspNetCore.NewDb dla nazwy i kliknij przycisk OK.Enter EFGetStarted.AspNetCore.NewDb for the name and click OK.
  • W nową aplikację sieci Web Core ASP.NET okna dialogowego:In the New ASP.NET Core Web Application dialog:
    • Upewnij się, opcje .NET Core i ASP.NET Core 2.0 są wybrane na liście rozwijanej listyEnsure the options .NET Core and ASP.NET Core 2.0 are selected in the drop down lists
    • Wybierz aplikacji sieci Web (Model-View-Controller) szablonu projektuSelect the Web Application (Model-View-Controller) project template
    • Upewnij się, że uwierzytelniania ustawiono bez uwierzytelnianiaEnsure that Authentication is set to No Authentication
    • Kliknij przycisk OKClick OK

Ostrzeżenie: Jeśli używasz indywidualnych kont użytkowników zamiast Brak dla uwierzytelniania , a następnie modelu Entity Framework Core zostanie dodany do projektu w Models\IdentityModel.cs.Warning: If you use Individual User Accounts instead of None for Authentication then an Entity Framework Core model will be added to your project in Models\IdentityModel.cs. Korzystanie z metod, które przedstawiono w ramach tego przewodnika, można dodać drugiego modelu lub rozszerzyć istniejącego modelu zawiera klas jednostek.Using the techniques you will learn in this walkthrough, you can choose to add a second model, or extend this existing model to contain your entity classes.

Zainstaluj program Entity Framework CoreInstall Entity Framework Core

Zainstaluj pakiet dla EF Core powszechne bazy danych, który ma być docelowa.Install the package for the EF Core 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

Użyjemy niektóre narzędzia Entity Framework Core utworzyć bazę danych z modelu EF Core.We will be using some Entity Framework Core Tools to create a database from your EF Core model. 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

Użyjemy niektóre platformy ASP.NET Core szkieletów narzędzia do tworzenia widoków i kontrolerów później.We will be using some ASP.NET Core Scaffolding tools to create controllers and views later on. Dlatego zostanie zainstalowany ten pakiet projektu:So we will install this design package as well:

  • UruchomInstall-Package Microsoft.VisualStudio.Web.CodeGeneration.DesignRun Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design

Tworzenie modeluCreate the model

Definiowanie kontekstu i jednostki klasy, które tworzą modelu:Define a context and entity classes that make up the model:

  • Kliknij prawym przyciskiem myszy modele i wybierz polecenie Dodaj > klasy.Right-click on the Models folder and select Add > Class.
  • Wprowadź Model.cs jako nazwy i kliknij przycisk OK.Enter Model.cs as the name and click OK.
  • Zastąp zawartość pliku następującym kodem:Replace the contents of the file with the following code:

    using Microsoft.EntityFrameworkCore;
    using System.Collections.Generic;
    
    namespace EFGetStarted.AspNetCore.NewDb.Models
    {
        public class BloggingContext : DbContext
        {
            public BloggingContext(DbContextOptions<BloggingContext> options)
                : base(options)
            { }
    
            public DbSet<Blog> Blogs { get; set; }
            public DbSet<Post> Posts { get; set; }
        }
    
        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; }
        }
    }
    

Uwaga: W rzeczywistej aplikacji zwykle przełączyć każdej klasy z modelu w oddzielnym pliku.Note: In a real app you would typically put each class from your model in a separate file. Dla uproszczenia wprowadzamy wszystkie klasy w jednym pliku w tym samouczku.For the sake of simplicity, we are putting all the classes in one file for this tutorial.

Zarejestruj kontekst iniekcji zależnościRegister your context with dependency injection

Usługi (takie jak BloggingContext) są zarejestrowane w usłudze iniekcji zależności podczas uruchamiania aplikacji.Services (such as BloggingContext) are registered with dependency injection during application startup. Składniki, które wymagają tych usług (takich jak kontrolerów MVC) są następnie udostępniane tych usług za pomocą konstruktora parametry lub właściwości.Components that require these services (such as your MVC controllers) are then provided these services via constructor parameters or properties.

Aby naszych kontrolerów MVC korzystać z BloggingContext firma Microsoft będzie rejestrowany jako usługa.In order for our MVC controllers to make use of BloggingContext we will register it as a service.

  • Otwórz Startup.csOpen Startup.cs
  • Dodaj następujące using instrukcji:Add the following using statements:

    using EFGetStarted.AspNetCore.NewDb.Models;
    using Microsoft.EntityFrameworkCore;
    

Dodaj AddDbContext metody, aby zarejestrować go w trybie usługi:Add the AddDbContext method to register it as a service:

  • Dodaj następujący kod do ConfigureServices metody:Add the following code to the ConfigureServices method:

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
    
        var connection = @"Server=(localdb)\mssqllocaldb;Database=EFGetStarted.AspNetCore.NewDb;Trusted_Connection=True;ConnectRetryCount=0";
        services.AddDbContext<BloggingContext>(options => options.UseSqlServer(connection));
    }
    

Uwaga: Rzeczywiste aplikacji gennerally spowodowałaby parametry połączenia w pliku konfiguracji.Note: A real app would gennerally put the connection string in a configuration file. Dla uproszczenia możemy są definiowane w kodzie.For the sake of simplicity, we are defining it in code. Zobacz parametry połączenia Aby uzyskać więcej informacji.See Connection Strings for more information.

Tworzenie bazy danychCreate your database

Po utworzeniu modelu, można użyć migracje tworzenia bazy danych.Once you have a model, you can use migrations to create a database.

  • Otwórz PMC:Open the PMC:

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

  • Uruchom Add-Migration InitialCreate Aby utworzyć szkielet migracji do utworzenia wstępnego zestawu tabel dla modelu.Run Add-Migration InitialCreate to scaffold a migration to create the initial set of tables for your model. Jeśli zostanie wyświetlony błąd informujący o The term 'add-migration' is not recognized as the name of a cmdlet, zamknij i otwórz ponownie program Visual Studio.If you receive an error stating The term 'add-migration' is not recognized as the name of a cmdlet, close and reopen Visual Studio.
  • Uruchom Update-Database na zastosowanie nowych migracji w bazie danych.Run Update-Database to apply the new migration to the database. To polecenie tworzy bazy danych przed zastosowaniem migracji.This command creates the database before applying migrations.

Tworzenie kontroleraCreate a controller

Aktywują szkielet do projektu:Enable scaffolding in the project:

  • Kliknij prawym przyciskiem myszy kontrolerów folderu w Eksploratora rozwiązań i wybierz Dodaj > kontrolera.Right-click on the Controllers folder in Solution Explorer and select Add > Controller.
  • Wybierz minimalnego zależności i kliknij przycisk Dodaj.Select Minimal Dependencies and click Add.
  • Można zignorować lub usunąć ScaffoldingReadMe.txt pliku.You can ignore or delete the ScaffoldingReadMe.txt file.

Teraz, gdy jest włączona funkcja szkieletów, możemy utworzyć szkielet kontrolera dla Blog jednostki.Now that scaffolding is enabled, we can scaffold a controller for the Blog entity.

  • Kliknij prawym przyciskiem myszy kontrolerów folderu w Eksploratora rozwiązań i wybierz Dodaj > kontrolera.Right-click on the Controllers folder in Solution Explorer and select Add > Controller.
  • Wybierz kontroler MVC z widokami używający narzędzia Entity Framework i kliknij przycisk Ok.Select MVC Controller with views, using Entity Framework and click Ok.
  • Ustaw klasa modelu do Blog i klasa kontekstu danych do BloggingContext.Set Model class to Blog and Data context class to BloggingContext.
  • Kliknij przycisk Dodaj.Click Add.

Uruchamianie aplikacjiRun the application

Naciśnij klawisz F5, aby uruchomić i przetestować aplikację.Press F5 to run and test the app.

  • Przejdź do/BlogsNavigate to /Blogs
  • Utwórz łącze umożliwia utworzenie niektórych wpisów.Use the create link to create some blog entries. Testowanie szczegóły i usunąć łącza.Test the details and delete links.

obraz

obraz

Dodatkowe zasobyAdditional Resources