Entity-Framework-Core-Rafael-Santiago

Conectar base de datos existente en ASP.NET Core

En esta entrada voy a realizar un ejemplo de como realizar una conexión entre una aplicación ASP.NET Core 5 y Una base de datos SQL Server usando el enfoque database First. Te platico un poco mas sobre este enfoque.

En el mundo del desarrollo muchas veces nos podemos encontrar que cuando se nos contrata para realizar un desarrollo  la empresa ya cuenta con una base de datos desarrollada, para trabajar ante esta situación es conveniente utilizar el enfoque database first y la herramienta que nos ayuda para se llama Entity Framework Core.

Entity Framework Core nos provee de las herramientas para realizar ‘ingeniería inversa’y poder generar automaticamente todas las clases del modelo desde el esquema de una base de datos, así como construir el Scaffold.

Bien, comenzo con los requisitos para realizar la platica:

  • Tener instalado Visual Studio.
  • Tener instalado Entity Framework 5
  • Tener instalado SQL Server (En mi caso utilizare la versión Express).
  • Tener alguna base de datos creada.

 

Si tienes dudas sobre como crear un proyecto ASP.NET Core puedes revisar esta entrada:

Abrimos nuestro proyecto ASP.NET Core MVC desde Visual Studio y nos dirigimos al menu:

Herramientas / Administrador de paquetes NuGet / Consola del Administrador de paquetes.

ASP.NET Core MVC EF Rafael Santiago Cruz

Tendremos que instalar tres dependencias para configurar lo necesario y poder realizar la técnica database first. Copiaremos cada linea del codigo que se presenta a continuación 1 a 1 según se vayan instalando.

PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer
PM> Install-Package Microsoft.EntityFrameworkCore.Tools
PM> Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design
Instalar paquetes NuGet

Abrimos nuesta base de datos para obtener nuestra cadena de conexión:

Servidor SQL Server

Ahora vamos  a  crear el contexto de la  base  de  dato, para ello ejecutaremos en la consola de administración de paquetes el siguiente comando en caso de que nuestro metodo de conexión sea por autenticación de Windows:

Scaffold-DbContext "Server=RAFAEL\SACR;Database=rafanet;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

En caso  de que  nuestro metodo de conexión sea a traves del metodo de autenticación de SQL Server ejecutaremos el siguiente comando:

Scaffold-DbContext "Server=RAFAEL\SQLEXPRESS;Database=rafanet;User Id= sa; Password=1590;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

Inyección de dependencias:

Editaremos nuestro archivo de configuración appsettings.json de la siguiente forma:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=RAFAEL\\SACR;Database=rafanet;Trusted_Connection=True;"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}

Tambien editaremos nuestro archivo Startup.cs agregando la siguientes lineas de codigo para agregar inyeccion de dependencias dentro del metodo ConfigureServices.

var connection = Configuration.GetConnectionString("DefaultConnection");
            services.AddDbContext<rafanetContext>(options=>options.UseSqlServer(connection));

Crear controladores y las vistas:

Ahora lo  que  debemos hacer es crear un controlador, tal y como aparece en la imagen:

Agregar Controlador ASP.NET Core