Instalación de Entity Framework CoreInstalling Entity Framework Core

Requisitos previosPrerequisites

  • EF Core es una biblioteca de .NET Standard 2.0.EF Core is a .NET Standard 2.0 library. Por este motivo, EF Core requiere una implementación de .NET que admita .NET Standard 2.0 para poder ejecutarse.So EF Core requires a .NET implementation that supports .NET Standard 2.0 to run. Otras bibliotecas de .NET Standard 2.0 también pueden hacer referencia a EF Core.EF Core can also be referenced by other .NET Standard 2.0 libraries.

  • Por ejemplo, puede usar EF Core para desarrollar aplicaciones que tengan como destino .NET Core.For example, you can use EF Core to develop apps that target .NET Core. La compilación de aplicaciones de .NET Core requiere el SDK de .NET Core.Building .NET Core apps requires the .NET Core SDK. También puede usar un entorno de desarrollo como Visual Studio, Visual Studio para Mac o Visual Studio Code.Optionally, you can also use a development environment like Visual Studio, Visual Studio for Mac, or Visual Studio Code. Para obtener más información, vea Introducción a .NET Core.For more information, check Getting Started with .NET Core.

  • Puede usar EF Core para desarrollar aplicaciones que tengan como destino .NET Framework 4.6.1 o posterior en Windows mediante Visual Studio.You can use EF Core to develop applications that target .NET Framework 4.6.1 or later on Windows, using Visual Studio. Se recomienda usar la última versión de Visual Studio.The latest version of Visual Studio is recommended. Si quiere usar una versión anterior, como Visual Studio 2015, asegúrese de que actualiza el cliente de NuGet a la versión 3.6.0 para poder trabajar con bibliotecas de .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 puede ejecutarse en otras implementaciones de. NET, como Xamarin y .NET Native.EF Core can run on other .NET implementations like Xamarin and .NET Native. Pero en la práctica, estas implementaciones tienen limitaciones de runtime que podrían afectar el rendimiento de EF Core en su aplicación.But in practice those implementations have runtime limitations that may affect how well EF Core works on your app. Para obtener más información, vea Implementaciones de .NET compatibles con EF Core.For more information, see .NET implementations supported by EF Core.

  • Por último, los diferentes proveedores de bases de datos pueden requerir versiones de motores de bases de datos, implementaciones de .NET o sistemas operativos específicas.Finally, different database providers may require specific database engine versions, .NET implementations, or operating systems. Asegúrese de que esté disponible un proveedor de bases de datos de EF Core que admita el entorno adecuado para su aplicación.Make sure an EF Core database provider is available that supports the right environment for your application.

Obtención del runtime de Entity Framework CoreGet the Entity Framework Core runtime

Para agregar EF Core a una aplicación, instale el paquete NuGet para el proveedor de bases de datos que quiera usar.To add EF Core to an application, install the NuGet package for the database provider you want to use.

Si está desarrollando una aplicación de ASP.NET Core, no tendrá que instalar los proveedores en memoria ni de SQL Server.If you're building an ASP.NET Core application, you don't need to install the in-memory and SQL Server providers. Estos proveedores están incluidos en las versiones actuales de ASP.NET Core, junto al runtime de EF Core.Those providers are included in current versions of ASP.NET Core, alongside the EF Core runtime.

Para instalar o actualizar paquetes NuGet, puede usar la interfaz de la línea de comandos (CLI) de .NET Core, o bien el cuadro de diálogo o la consola del Administrador de paquetes de 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.

CLI de .NET Core.NET Core CLI

  • Use el comando de la CLI de .NET Core en la línea de comandos del sistema operativo para instalar o actualizar el proveedor de SQL Server de EF Core: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
    
  • Puede indicar una versión específica en el comando dotnet add package usando el modificador -v.You can indicate a specific version in the dotnet add package command, using the -v modifier. Por ejemplo, para instalar paquetes de EF Core 2.2.0, anexe -v 2.2.0 al comando.For example, to install EF Core 2.2.0 packages, append -v 2.2.0 to the command.

Para obtener más información, vea Herramientas de la interfaz de la línea de comandos (CLI) de .NET Core.For more information, see .NET command-line interface (CLI) tools.

Cuadro de diálogo Administrador de paquetes NuGet en Visual StudioVisual Studio NuGet Package Manager Dialog

  • En el menú de Visual Studio, seleccione Proyecto > Administrar paquetes NuGetFrom the Visual Studio menu, select Project > Manage NuGet Packages

  • Haga clic en la pestaña Examinar o ActualizacionesClick on the Browse or the Updates tab

  • Para instalar o actualizar el proveedor de SQL Server, seleccione el paquete Microsoft.EntityFrameworkCore.SqlServer y confirme la acción.To install or update the SQL Server provider, select the Microsoft.EntityFrameworkCore.SqlServer package, and confirm.

Para obtener más información, vea Diálogo del Administrador de paquetes NuGet.For more information, see NuGet Package Manager Dialog.

Consola del Administrador de paquetes NuGet de Visual StudioVisual Studio NuGet Package Manager Console

  • En el menú de Visual Studio, seleccione Herramientas > Administrador de paquetes NuGet > Consola del Administrador de paquetes.From the Visual Studio menu, select Tools > NuGet Package Manager > Package Manager Console

  • Para instalar el proveedor de SQL Server, ejecute el comando siguiente en la consola del Administrador de paquetes:To install the SQL Server provider, run the following command in the Package Manager Console:

    Install-Package Microsoft.EntityFrameworkCore.SqlServer
    
  • Para actualizar el proveedor, use el comando Update-Package.To update the provider, use the Update-Package command.

  • Para especificar una versión, use el modificador -Version.To specify a specific version, use the -Version modifier. Por ejemplo, para instalar paquetes de EF Core 2.2.0, anexe -Version 2.2.0 a los comandos.For example, to install EF Core 2.2.0 packages, append -Version 2.2.0 to the commands

Para obtener más información, vea Consola del Administrador de paquetes.For more information, see Package Manager Console.

Obtención de las herramientas de Entity Framework CoreGet the Entity Framework Core tools

Puede instalar herramientas para llevar a cabo tareas relacionadas con EF Core en el proyecto, como crear y aplicar las migraciones de bases de datos o crear un modelo de EF Core basado en una base de datos existente.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.

Existen dos conjuntos de herramientas:Two sets of tools are available:

Aunque puede usar los comandos de dotnet ef desde la consola del Administrador de paquetes, le recomendamos que use las herramientas de la consola del Administrador de paquetes en 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:

  • Trabajan automáticamente con el proyecto actual seleccionado en la PMC de Visual Studio sin necesidad de cambiar manualmente entre directorios.They automatically work with the current project selected in the PMC in Visual Studio, without requiring manually switching directories.

  • Abren automáticamente los archivos generados por los comandos de Visual Studio una vez completado el comando.They automatically open files generated by the commands in Visual Studio after the command is completed.

Obtención de las herramientas de la CLI de .NET CoreGet the .NET Core CLI tools

Las herramientas de la CLI de .NET Core requieren el SDK de .NET Core, tal como se indica en Requisitos previos..NET Core CLI tools require the .NET Core SDK, mentioned earlier in Prerequisites.

Los comandos de dotnet ef están incluidos en las versiones actuales del SDK de .NET Core, pero es necesario instalar el paquete Microsoft.EntityFrameworkCore.Design para habilitarlos en un proyecto específico: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 

Para las aplicaciones de ASP.NET Core, este paquete se incluye automáticamente.For ASP.NET Core apps, this package is included automatically.

Importante

Use siempre la versión del paquete de herramientas que coincida con la versión principal de los paquetes en tiempo de ejecución.Always use the version of the tools package that matches the major version of the runtime packages.

Obtención de las herramientas de la consola del Administrador de paquetesGet the Package Manager Console tools

Para obtener las herramientas de la consola del Administrador de paquetes para EF Core, instale el paquete Microsoft.EntityFrameworkCore.Tools.To get the Package Manager Console tools for EF Core, install the Microsoft.EntityFrameworkCore.Tools package. Por ejemplo, en Visual Studio:For example, from Visual Studio:

Install-Package Microsoft.EntityFrameworkCore.Tools

Para las aplicaciones de ASP.NET Core, este paquete se incluye automáticamente.For ASP.NET Core apps, this package is included automatically.

Actualización a la versión más reciente de EF CoreUpgrading to the latest EF Core

  • Cuando publicamos una nueva versión de EF Core, también publicamos una nueva versión de los proveedores que forman parte del proyecto de EF Core, como, por ejemplo: Microsoft.EntityFrameworkCore.SqlServer, Microsoft.EntityFrameworkCore.Sqlite y 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. Para obtener todas las mejoras, solo tiene que actualizar a la nueva versión del proveedor.You can just upgrade to the new version of the provider to get all the improvements.

  • EF Core y los proveedores de SQL Server y en memoria están incluidos en las versiones actuales de ASP.NET Core.EF Core, together with the SQL Server and the in-memory providers are included in current versions of ASP.NET Core. Para actualizar una aplicación de ASP.NET Core existente a una versión más reciente de EF Core, actualice siempre la versión de 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.

  • Si necesita actualizar una aplicación que usa un proveedor de base de datos de terceros, busque siempre una actualización del proveedor que sea compatible con la versión de EF Core que quiere usar.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. Por ejemplo, los proveedores de bases de datos de las versiones anteriores no son compatibles con la versión 2.0 del runtime de EF Core.For example, database providers for previous versions are not compatible with version 2.0 of the EF Core runtime.

  • Los proveedores de terceros de EF Core no suelen publicar versiones de revisión junto al runtime de EF Core.Third-party providers for EF Core usually don't release patch versions alongside the EF Core runtime. Para actualizar una aplicación que use un proveedor de terceros a una versión de revisión de EF Core, puede que deba agregar una referencia directa a determinados componentes de runtime de EF Core, como Microsoft.EntityFrameworkCore o 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.

  • Si va a actualizar una aplicación existente a la última versión de EF Core, es posible que algunas referencias a los paquetes más antiguos de EF Core tengan que quitarse manualmente: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:

    • Los paquetes en tiempo de diseño del proveedor de base de datos, como Microsoft.EntityFrameworkCore.SqlServer.Design, ya no son necesarios ni se admiten en EF Core 2.0 y versiones posteriores, pero no se quitan automáticamente al actualizar los demás paquetes.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.

    • Las herramientas de la CLI de .NET están incluidas en el SDK de .NET desde la versión 2.1, por lo que se puede quitar la referencia a ese paquete desde el archivo del proyecto: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" />
      
  • Puede que las aplicaciones que tengan como destino .NET Framework deban modificarse para poder trabajar con bibliotecas de .NET Standard 2.0:Applications that target .NET Framework may need changes to work with .NET Standard 2.0 libraries:

    • Edite el archivo de proyecto y asegúrese de que la siguiente entrada aparece en el grupo de propiedades inicial:Edit the project file and make sure the following entry appears in the initial property group:

      <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
      
    • En los proyectos de prueba, asegúrese también de que la entrada siguiente está presente:For test projects, also make sure the following entry is present:

      <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>