Publicada:

.NET 6.0 - Conéctese a SQL Server con Entity Framework Core

Tutorial creado con .NET 6.0

Otras versiones disponibles:

Esta publicación muestra los pasos para conectar una API de .NET 6 a SQL Server usando Entity Framework Core y crear/actualizar automáticamente la base de datos de SQL Server a partir del código usando migraciones de EF Core.

Comenzaremos con un ejemplo de .NET 6 CRUD API de un tutorial que publiqué recientemente, utiliza el proveedor de base de datos EF Core InMemory de forma predeterminada para las pruebas, lo actualizaremos para conectarse a un servidor SQL base de datos y ejecute migraciones de EF Core para generar automáticamente la base de datos y las tablas a partir del código. Para obtener detalles completos sobre la API CRUD de .NET, consulte .NET 6.0 - Ejemplo y tutorial de API CRUD.


Contenidos del tutorial


Herramientas necesarias para este tutorial

Para seguir los pasos de este tutorial, necesitará lo siguiente:

  • .NET SDK - incluye las herramientas de línea de comandos y tiempo de ejecución de .NET.
  • Visual Studio Code - editor de código que se ejecuta en Windows, Mac y Linux . Si tiene un editor de código preferido diferente, también está bien.
  • extensión C# para Visual Studio Code - agrega compatibilidad con VS Code para desarrollar aplicaciones .NET.
  • SQL Server - necesitará acceso a la instancia de SQL Server en ejecución para que la API se conecte, puede ser remota (por ejemplo, Azure, AWS, etc.) o en su máquina local. La edición Express de SQL Server está disponible de forma gratuita en https://www.microsoft.com/sql-server/sql-server-downloads.


Descargar & Ejecute la API de .NET 6 de ejemplo

Siga estos pasos para descargar y ejecutar la API CRUD de .NET 6 en su máquina local con la base de datos EF Core InMemory predeterminada:

  1. Descargue o clone el código del proyecto del tutorial desde https://github.com/cornflourblue/dotnet-6-crud-api
  2. Inicie la API ejecutando dotnet run desde la línea de comando en la carpeta raíz del proyecto (donde se encuentra el archivo WebApi.csproj), debería ver el mensaje Now listening on: http://localhost:4000.
  3. Puede probar la API directamente con una herramienta como Postman o engancharla arriba con el ejemplo Angular o React aplicación disponible.

Comenzando en modo de depuración

También puede iniciar la aplicación en modo de depuración en VS Code abriendo la carpeta raíz del proyecto en VS Code y presionando F5 o seleccionando Depurar -> Inicie la depuración desde el menú superior, ejecutar en modo de depuración le permite adjuntar puntos de interrupción para pausar la ejecución y recorrer el código de la aplicación. Para obtener instrucciones detalladas, incluido un breve video de demostración, consulte VS Code + .NET - Debug a .NET Web App in Visual Studio Code.


Actualice la API de .NET 6 para usar SQL Server


Agregar proveedor de base de datos de SQL Server desde NuGet

Ejecute el siguiente comando desde la carpeta raíz del proyecto para instalar el proveedor de la base de datos EF Core para SQL Server desde NuGet:

dotnet add package Microsoft.EntityFrameworkCore.SqlServer


Agregar cadena de conexión a la configuración de la aplicación

Abra el archivo appsettings.json y agregue la entrada "ConnectionStrings" con una entrada secundaria para la cadena de conexión de SQL Server (por ejemplo, "WebApiDatabase" ), la cadena de conexión debe tener el formato "Data Source=[DB SERVER URL]; Initial Catalog=[DB NAME]; User Id=[USERNAME]; Password=[PASSWORD]", o para conectarse con la misma cuenta que está ejecutando la API de .NET, utilice el formato de cadena de conexión "Data Source=[DB SERVER URL]; Initial Catalog=[DB NAME]; Integrated Security=true".

Cuando las migraciones de EF Core generan la base de datos, el valor del Initial Catalog será el nombre de la base de datos creada en SQL Server.

El archivo appsettings.json actualizado con la cadena de conexión debería verse así:

{
    "ConnectionStrings": {
        "WebApiDatabase": "Data Source=localhost; Initial Catalog=dotnet-6-crud-api; User Id=testUser; Password=testPass123"
    },
    "Logging": {
        "LogLevel": {
            "Default": "Information",
            "Microsoft.AspNetCore": "Warning"
        }
    }
}


Actualizar contexto de datos para usar SQL Server

La clase DataContext ubicada en /Helpers/DataContext.cs se usa para acceder a los datos de la aplicación a través de Entity Framework. Se deriva de la clase DbContext de Entity Framework y tiene una propiedad Users pública para acceder y administrar los datos de los usuarios.

Actualice el método OnConfiguring() para conectarse a SQL Server en lugar de una base de datos en memoria reemplazando options.UseInMemoryDatabase("TestDb"); con options.UseSqlServer(Configuration.GetConnectionString("WebApiDatabase"));.

La clase DataContext actualizada debería verse así:

namespace WebApi.Helpers;

using Microsoft.EntityFrameworkCore;
using WebApi.Entities;

public class DataContext : DbContext
{
    protected readonly IConfiguration Configuration;

    public DataContext(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    protected override void OnConfiguring(DbContextOptionsBuilder options)
    {
        // connect to sql server with connection string from app settings
        options.UseSqlServer(Configuration.GetConnectionString("WebApiDatabase"));
    }

    public DbSet<User> Users { get; set; }
}


Cree una base de datos SQL a partir del código con Migraciones de EF Core


Instalar herramientas dotnet ef

Las herramientas de .NET Entity Framework Core (dotnet ef) se utilizan para generar migraciones de EF Core, para instalar las herramientas de EF Core globalmente ejecute dotnet tool install -g dotnet-ef, o para actualizar ejecute dotnet tool update -g dotnet-ef. Para obtener más información sobre las herramientas de EF Core, consulte https://docs.microsoft.com/ef/core/cli/dotnet

Agregue el paquete EF Core Design desde NuGet

Ejecute el siguiente comando desde la carpeta raíz del proyecto para instalar el paquete de diseño de EF Core, proporciona compatibilidad con herramientas de línea de comandos multiplataforma y se usa para generar migraciones de EF Core:

dotnet add package Microsoft.EntityFrameworkCore.Design


Generar migraciones de EF Core

Generar nuevos archivos de migración de EF Core ejecutando el comando dotnet ef migrations add InitialCreate desde la carpeta raíz del proyecto (donde se encuentra el archivo WebApi.csproj), estas migraciones crearán la base de datos y las tablas para la API de .NET Core.

Ejecutar migraciones de EF Core

Ejecute el comando dotnet ef database update desde la carpeta raíz del proyecto para ejecutar las migraciones de EF Core y crear la base de datos y las tablas en SQL Server.

Verifique SQL Server y ahora debería ver su base de datos con las tablas Users y __EFMigrationsHistory.


Reiniciar la API CRUD de .NET 6.0

Detenga y reinicie la API con el comando dotnet run desde la carpeta raíz del proyecto, debería ver el mensaje Now listening on: http://localhost:4000 y la API ahora debería estar conectada a SQL Server.

 


Suscríbete o Sígueme para actualizaciones

Suscríbete a mi canal de YouTube o sígueme en Twitter, Facebook o GitHub para recibir notificaciones cuando publique contenido nuevo.

Aparte de la codificación...

Actualmente estoy intentando viajar por Australia en motocicleta con mi esposa Tina en un par de Royal Enfield Himalayan. Puedes seguir nuestras aventuras en YouTube, Instagram y Facebook.


¿Necesita Ayuda .NET?

Buscar fiverr para encontrar ayuda rápidamente de desarrolladores .NET experimentados.