Entiy Framework Core のインストールInstalling Entity Framework Core

必須コンポーネントPrerequisites

  • EF Core は .NET Standard 2.0 ライブラリの 1 つです。EF Core is a .NET Standard 2.0 library. したがって、EF Core が動作するには .NET Standard 2.0 をサポートする .NET 実装が必要です。So EF Core requires a .NET implementation that supports .NET Standard 2.0 to run. EF Core は他の .NET Standard 2.0 ライブラリから参照することもできます。EF Core can also be referenced by other .NET Standard 2.0 libraries.

  • たとえば、.NET Core をターゲットとするアプリを EF Core を使用して開発することができます。For example, you can use EF Core to develop apps that target .NET Core. .NET Core アプリを構築するには、.NET Core SDK が必要です。Building .NET Core apps requires the .NET Core SDK. 必要に応じて、Visual Studio、Visual Studio for Mac、Visual Studio Code などの開発環境を使用することもできます。Optionally, you can also use a development environment like Visual Studio, Visual Studio for Mac, or Visual Studio Code. 詳しくは、「.NET Core の概要」をご覧ください。For more information, check Getting Started with .NET Core.

  • EF Core を使用して .NET Framework 4.6.1 以降をターゲットとするアプリケーションを Windows で、Visual Studio を使用して開発することができます。You can use EF Core to develop applications that target .NET Framework 4.6.1 or later on Windows, using Visual Studio. Visual Studio の最新バージョンをお勧めします。The latest version of Visual Studio is recommended. それよりも古いバージョン (たとえば Visual Studio 2015) を使用する場合は、必ず NuGet クライアントをバージョン 3.6.0 にアップグレードしてください。これで .NET Standard 2.0 のライブラリと連携できるようになります。If you want to use an older version, like Visual Studio 2015, make sure you upgrade the NuGet client to version 3.6.0 to work with .NET Standard 2.0 libraries.

  • EF Core を他の .NET 実装 (たとえば Xamarin や .NET Native) 上で実行することができます。EF Core can run on other .NET implementations like Xamarin and .NET Native. ただし、実際にはそのような実装には実行時の制約があるため、開発したアプリでの EF Core の動作に影響を与える可能性があります。But in practice those implementations have runtime limitations that may affect how well EF Core works on your app. 詳しくは、「EF Core でサポートされている .NET 実装」をご覧ください。For more information, see .NET implementations supported by EF Core.

  • データベース プロバイダーによっては、特定のデータベース エンジン バージョン、.NET 実装、またはオペレーティング システムが要求される場合があります。Finally, different database providers may require specific database engine versions, .NET implementations, or operating systems. 開発するアプリケーションに適した環境をサポートする EF Core データベース プロバイダーがあることを確認してください。Make sure an EF Core database provider is available that supports the right environment for your application.

Entity Framework Core のランタイムを入手するGet the Entity Framework Core runtime

EF Core をアプリケーションに追加するには、使用するデータベース プロバイダーに対応した NuGet パッケージをインストールします。To add EF Core to an application, install the NuGet package for the database provider you want to use.

ASP.NET Core アプリケーションを構築する場合は、インメモリや SQL Server のプロバイダーをインストールする必要はありません。If you're building an ASP.NET Core application, you don't need to install the in-memory and SQL Server providers. これらのプロバイダーは、現在のバージョンの ASP.NET Core に、EF Core ランタイムとともに含まれています。Those providers are included in current versions of ASP.NET Core, alongside the EF Core runtime.

NuGet パッケージをインストールまたは更新するには、.NET Core コマンド ライン インターフェイス (CLI)、Visual Studio パッケージ マネージャー ダイアログ、または Visual Studio パッケージ マネージャー コンソールを使用できます。To install or update NuGet packages, you can use the .NET Core command-line interface (CLI), the Visual Studio Package Manager Dialog, or the Visual Studio Package Manager Console.

.NET Core CLI.NET Core CLI

  • 次の .NET Core CLI コマンドをオペレーティング システムのコマンド ラインで使用して EF Core SQL Server プロバイダーのインストールまたは更新を行います。Use the following .NET Core CLI command from the operating system's command line to install or update the EF Core SQL Server provider:

    dotnet add package Microsoft.EntityFrameworkCore.SqlServer
    
  • -v 修飾子を利用し、dotnet add package コマンドで特定のバージョンを指定できます。You can indicate a specific version in the dotnet add package command, using the -v modifier. たとえば、EF Core 2.2.0 のパッケージをインストールするには、コマンドの末尾に -v 2.2.0 を追加します。For example, to install EF Core 2.2.0 packages, append -v 2.2.0 to the command.

詳細については、「.NET コマンド ライン インターフェイス (CLI) ツール」をご覧ください。For more information, see .NET command-line interface (CLI) tools.

Visual Studio の NuGet パッケージ マネージャー ダイアログVisual Studio NuGet Package Manager Dialog

  • Visual Studio のメニューから [プロジェクト]、[NuGet パッケージの管理] の順に選択します。From the Visual Studio menu, select Project > Manage NuGet Packages

  • [参照] または [更新] タブをクリックします。Click on the Browse or the Updates tab

  • SQL Server プロバイダーをインストールまたは更新するには、Microsoft.EntityFrameworkCore.SqlServer パッケージを選択して確定します。To install or update the SQL Server provider, select the Microsoft.EntityFrameworkCore.SqlServer package, and confirm.

詳細については、「NuGet パッケージ マネージャー UI」を参照してください。For more information, see NuGet Package Manager Dialog.

Visual Studio の NuGet パッケージ マネージャー コンソールVisual Studio NuGet Package Manager Console

  • Visual Studio のメニューから [ツール]、[NuGet パッケージ マネージャー]、[パッケージ マネージャー コンソール] の順に選択します。From the Visual Studio menu, select Tools > NuGet Package Manager > Package Manager Console

  • SQL Server プロバイダーをインストールするには、パッケージ マネージャー コンソールで、次のコマンドを実行します。To install the SQL Server provider, run the following command in the Package Manager Console:

    Install-Package Microsoft.EntityFrameworkCore.SqlServer
    
  • プロバイダーを更新するには、Update-Package コマンドを使用します。To update the provider, use the Update-Package command.

  • 特定のバージョンを指定するには、-Version 修飾子を使用します。To specify a specific version, use the -Version modifier. たとえば、EF Core 2.2.0 のパッケージをインストールするには、コマンドの末尾に -Version 2.2.0 を追加します。For example, to install EF Core 2.2.0 packages, append -Version 2.2.0 to the commands

詳細については、「パッケージ マネージャー コンソール」を参照してください。For more information, see Package Manager Console.

Entity Framework Core のツールを入手するGet the Entity Framework Core tools

EF Core 関連のタスクをプロジェクト内で実行するためのツールをインストールできます。たとえば、データベース移行を作成して適用することや、EF Core モデルを既存のデータベースに基づいて作成することができます。You can install tools to carry out EF Core-related tasks in your project, like creating and applying database migrations, or creating an EF Core model based on an existing database.

2 つのツールのセットを使用できます。Two sets of tools are available:

dotnet ef コマンドをパッケージ マネージャー コンソールで使用することもできますが、Visual Studio を使用しているときは、次のような理由からパッケージ マネージャー コンソールのツールを使用することをお勧めします。Although you can also use the dotnet ef commands from the Package Manager Console, it's recommended to use the Package Manager Console tools when you're using Visual Studio:

  • Visual Studio の PMC で現在選択されているプロジェクトと自動的に連動します。ディレクトリを手動で切り替える必要がありません。They automatically work with the current project selected in the PMC in Visual Studio, without requiring manually switching directories.

  • コマンドの完了後、Visual Studio で、コマンドによって生成されたファイルが自動的に開きます。They automatically open files generated by the commands in Visual Studio after the command is completed.

.NET Core CLI ツールを入手するGet the .NET Core CLI tools

.NET Core CLI ツールを使用するには、「必須コンポーネント」で前述したとおり .NET Core SDK が必要です。.NET Core CLI tools require the .NET Core SDK, mentioned earlier in Prerequisites.

dotnet ef のコマンドは現在のバージョンの .NET Core SDK に含まれていますが、このコマンドを特定のプロジェクトで使用できるようにするには、次の方法で Microsoft.EntityFrameworkCore.Design パッケージをインストールする必要があります。The dotnet ef commands are included in current versions of the .NET Core SDK, but to enable the commands on a specific project, you have to install the Microsoft.EntityFrameworkCore.Design package:

dotnet add package Microsoft.EntityFrameworkCore.Design 

ASP.NET Core アプリの場合は、このパッケージが自動的に組み込まれます。For ASP.NET Core apps, this package is included automatically.

重要

ランタイム パッケージのメジャー バージョンと一致するバージョンのツール パッケージを常に使用してください。Always use the version of the tools package that matches the major version of the runtime packages.

パッケージ マネージャー コンソール ツールを入手するGet the Package Manager Console tools

EF Core 用のパッケージ マネージャー コンソール ツールを入手するには、Microsoft.EntityFrameworkCore.Tools パッケージをインストールします。To get the Package Manager Console tools for EF Core, install the Microsoft.EntityFrameworkCore.Tools package. たとえば、Visual Studio で次のようにします。For example, from Visual Studio:

Install-Package Microsoft.EntityFrameworkCore.Tools

ASP.NET Core アプリの場合は、このパッケージが自動的に組み込まれます。For ASP.NET Core apps, this package is included automatically.

最新の EF Core にアップグレードするUpgrading to the latest EF Core

  • 新しいバージョンの EF Core がリリースされると、EF Core プロジェクトの一部であるプロバイダー (Microsoft.EntityFrameworkCore.SqlServer、Microsoft.EntityFrameworkCore.Sqlite、Microsoft.EntityFrameworkCore.InMemory など) の新しいバージョンもリリースされます。Any time we release a new version of EF Core, we also release a new version of the providers that are part of the EF Core project, like Microsoft.EntityFrameworkCore.SqlServer, Microsoft.EntityFrameworkCore.Sqlite, and Microsoft.EntityFrameworkCore.InMemory. 新しいバージョンのプロバイダーにアップグレードするだけで、すべての機能強化を入手できます。You can just upgrade to the new version of the provider to get all the improvements.

  • EF Core は、SQL Server やインメモリのプロバイダーとともに現在のバージョンの ASP.NET Core に含まれています。EF Core, together with the SQL Server and the in-memory providers are included in current versions of ASP.NET Core. 既存の ASP.NET Core アプリケーションを新しいバージョンの EF Core に合わせてアップグレードするには、必ず ASP.NET Core のバージョンをアップグレードします。To upgrade an existing ASP.NET Core application to a newer version of EF Core, always upgrade the version of ASP.NET Core.

  • サードパーティ データベース プロバイダーを使用するアプリケーションを更新する場合、使用するバージョンの EF Core との間で互換性があるプロバイダーの更新がないか、常に確認してください。If you need to update an application that is using a third-party database provider, always check for an update of the provider that is compatible with the version of EF Core you want to use. たとえば、前のバージョンのデータベース プロバイダーは EF Core ランタイムのバージョン 2.0 との間で互換性がありません。For example, database providers for previous versions are not compatible with version 2.0 of the EF Core runtime.

  • EF Core 用のサードパーティ プロバイダーは通常、EF Core ランタイと並行してパッチ バージョンをリリースすることはありません。Third-party providers for EF Core usually don't release patch versions alongside the EF Core runtime. サードパーティ プロバイダーを使用するアプリケーションを EF Core のパッチ バージョンに合わせてアップグレードするには、個々の EF Core ランタイム コンポーネント (たとえば Microsoft.EntityFrameworkCore や Microsoft.EntityFrameworkCore.Relational) への直接の参照を追加することが必要になる可能性があります。To upgrade an application that uses a third-party provider to a patch version of EF Core, you may need to add a direct reference to individual EF Core runtime components, such as Microsoft.EntityFrameworkCore, and Microsoft.EntityFrameworkCore.Relational.

  • 既存のアプリケーションを最新バージョンの EF Core に合わせてアップグレードする場合は、古い EF Core パッケージの参照を手動で削除することが必要になる可能性があります。If you're upgrading an existing application to the latest version of EF Core, some references to older EF Core packages may need to be removed manually:

    • データベース プロバイダーのデザイン時パッケージ (たとえば Microsoft.EntityFrameworkCore.SqlServer.Design) は、EF Core 2.0 からは不要になり、サポートもされなくなりましたが、他のパッケージをアップグレードするときに自動で削除されることはありません。Database provider design-time packages such as Microsoft.EntityFrameworkCore.SqlServer.Design are no longer required or supported from EF Core 2.0 and later, but aren't automatically removed when upgrading the other packages.

    • .NET CLI ツールがバージョン 2.1 以降の .NET SDK に含まれているので、そのパッケージへの参照は次の方法でプロジェクト ファイルから削除できます。The .NET CLI tools are included in the .NET SDK since version 2.1, so the reference to that package can be removed from the project file:

      <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
      
  • .NET Framework をターゲットとするアプリケーションを .NET Standard 2.0 のライブラリと連携させるには、次のような変更が必要になる可能性があります。Applications that target .NET Framework may need changes to work with .NET Standard 2.0 libraries:

    • プロジェクト ファイルを編集し、初期プロパティ グループに次のエントリが表示されるようにします。Edit the project file and make sure the following entry appears in the initial property group:

      <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
      
    • テスト プロジェクトの場合、次のエントリも必要です。For test projects, also make sure the following entry is present:

      <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>