No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Agregando conexión al archivo appsettings

12/25
Recursos

Instalación SQL server:
https://docs.microsoft.com/sql/database-engine/install-windows/install-sql-server

Ejemplo de cadena de conexión para SQL server:
"Data Source=server;Initial Catalog=db;user id=sa; password=pass";

Configuración para PostgreSQL:

Enlace de descarga:
https://www.postgresql.org/download/

Paquete nuget:
https://www.nuget.org/packages/Npgsql.EntityFrameworkCore.PostgreSQL/

Comando para instalar el paquete nuget:
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL

Configuración de PostgreSQL en la clase Program.cs:

 services.AddDbContext<HotelContextDB>(options =>
                options.UseNpgsql(“Server=postgreServer;Database=DbName;Port=5432;User Id=user;Password=password;”));

Ejemplo de con cadena de conexión de PostgreSQL:
Server=postgreServer;Database=DbName;Port=5432;User Id=user;Password=password;

Aportes 15

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Para utilizar la autenticación de Windows en SQL Server Management Studio se debe utilizar:

<code>  "ConnectionStrings": {
    "cnTareas":"Data Source=.\\SQLEXPRESS;Database=TareasDB;Integrated Security=True"
  }

Para quien lo este haciendo en postgres, quedaria asi:

//program.cs
builder.Services.AddNpgsql<TaskContext>(builder.Configuration.GetConnectionString("TaskDb"));

//archivo appsettings.json
 "ConnectionStrings": {
    "TaskDb" :"Server=postgreServer;Database=StringEF;Port=5430;Username =my_user;Password=root;Host=localhost;"
  }

Les comparto el siguiente link donde encontraran cómo guardar secretos en la aplicación y así evitar que nuestro password quede almacenado en el sistema de control de fuentes (en mi caso git).

https://learn.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-6.0&tabs=linux

¿Quieres setear valores por defecto en SQL Server?
Lee la doc.: Fluent API

https://learn.microsoft.com/en-us/dotnet/csharp/ les comparto la documentacion oficial

Agregando conexión al archivo appsettings


Para agregar una capa de seguridad en nuestra aplicativo y que los datos de conexion a nuestra base de datos no queden insertado como una cadena en el codigo, podemos hacer uso del archivo appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
	"ConnectionStrings": {
		"cnHomework": "Server=localhost;Database=TareasDB;User Id=SA;Password=mySecret1234;MultipleActiveResultSets=true;"
	}
}

Creamos nuestra llave valos dentro de ConnectionStrings con el nombre que nosotros queramos darle, en mi caso cnHomework y aqui vamos a poner nuestra cadena de conexion

En el archivo Program.cs vamos a hacer uso de la clase Configuration para llamer a nuestra cadena accediendo al nombre que le hallamos dado, quedando de la siguiente manera:

builder.Services.AddSqlServer<HomeworkContext>(builder.Configuration.GetConnectionString("cnHomework"));

Levantamos nuevamente nuestra aplicacion y debe funcionar sin problema.

Hay que tener en cuenta también el uso de User Secrets que es muy útil cuando estamos desarrollando.

¿Que son User Secrets?
User secrets son datos especificos que contienen información sensible tales como contraseñas de administrador, claves de API, cadenas de conexión,etc… por lo que necesitamos mantenerlas fuera de nuestro repositorio.

Secret Manager es una herramienta que permite guardar user secrets en un archivo fuera del código fuente de nuestra aplicación.

Ahora podemos agregar todos los user secrets que necesitemos.

Fuente: User Secrets en ASP.NET Core

para conectar con **Postgree **SQL builder.Services.AddDbContext<TareasContext>(options =>
options.UseNpgsql(“Server=url;Database=abcdfe;User Id=abcdfs;Password=dada por el proveedor;”));

En mi caso use https://www.elephantsql.com/

Oye broo, actualiza este curso. Para los que tengan problemas de conexión por temas de seguridad. * ```js { "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*", "ConnectionStrings": { "cnTareas" : "Data Source=SCLNTB6747865;Initial Catalog=TareasDb;user id=luis;password=sds;MultipleActiveResultSets=true;TrustServerCertificate=True;encrypt=false" } } ```Luego debe irse a las propiedades DEL USUARIO y modificar las opciones que aparecen en la imagen ![](https://static.platzi.com/media/user_upload/image-8e402040-b116-489f-98ed-4c9defcab6e8.jpg)
Por si alguien necestita, esta sería la configuración para Mysql. "ConnectionStrings": {var connectionString = builder.Configuration.GetConnectionString("Conexiontareas"); ```js "ConnectionStrings": { "Conexiontareas": "server=localhost;database=database;user=usuario;password=password;" } ``` Y en el program ```js var connectionString = builder.Configuration.GetConnectionString("Conexiontareas"); "Conexiontareas": "server=localhost;database=database;user=usuario;password=password;" } builder.Services.AddDbContext<AdminGymContext>(options => options.UseMySQL(connectionString) ); ``` "Conexiontareas": "server=localhost;database=database;user=usuario;password=password;" } builder.Services.AddDbContext\<AdminGymContext>(options => options.UseMySQL(connectionString) );
Siempre abusen el dotnet build "nombre del proyecto" para saber que problema tienen de raiz

Pueden usar la extensión de VSC rangav.vscode-thunder-client

Fck de haber sabido un video antes haha, ya lo conecté a sqlite3 y me costó un huevo xd

// To connect to PostgresSQL
builder.Services.AddNpgsql<TrainingContext>("Server=localhost; Port=5432; Database=TaskDb; User Id=username; Password=secretpassword");

app.MapGet("/dbConexion", async ([FromServices] TrainingContext dbContext) =>
{
    dbContext.Database.EnsureCreated();
    return Results.Ok("Database created in memory: " + dbContext.Database.IsNpgsql());
});

Tambien puedes usar:
Results.Ok("Base de datos en memoria "+ dbContext.Database.IsSqlServer());
Para cer la conexion en true en postman