es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué obtengo el mensaje de error “Value cannot be null. (Parámetro ‘connectionString’)” después de agregar migraciones?

Tengo un mensaje de error mientras intento hacer Add-Migration y obtengo un mensaje de error.

No se puede dejar el valor en blanco. (Parámetro ‘connectionString’)

Lo que hice hasta ahora es verificar el archivo Startup.cs y escribí algo así:

using Microsoft.EntityFrameworkCore;
using ToDoS.Models;

var builder = WebApplication.CreateBuilder(args);

// Agregar servicios al contenedor.
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");

builder.Services.AddDbContext<todocontext>(opt =>
   opt.UseSqlServer(connectionString));

builder.Services.AddControllers();
// Obtenga más información sobre cómo configurar Swagger/OpenAPI en https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();

// Configurar el canal de solicitud HTTP.
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseHttpsRedirection();

app.UseAuthorization();

app.MapControllers();

app.Run();

Entonces, en esta parte agregué:

var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");

builder.Services.AddDbContext<todocontext>(opt =>
   opt.UseSqlServer(connectionString));

Y aquí está mi cadena de conexión:

{
  "Logging": {
    "ConnectionStrings": {
      "DefaultConnection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=ToDoApp;Integrated Security=True"
    },
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*"
}

Y TodoContext:

using Microsoft.EntityFrameworkCore;

namespace ToDoS.Models
{
    public class TodoContext : DbContext
    {
        public TodoContext(DbContextOptions<todocontext> options) : base(options) { }
        public DbSet<todo> Todos { get; set; }

    }
}

Después de ejecutar “add-migration InitCreate” obtengo un mensaje de error. ¿Dónde cometí un error? ¿Qué me falta aquí?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error “No se puede asignar un valor nulo. (Parámetro ‘connectionString’)” indica que el parámetro connectionString es nulo. Esto significa que o bien no se ha definido connectionString en el archivo de configuración o no se está recuperando correctamente.

    En tu caso, parece que has definido correctamente connectionString en el archivo de configuración, pero podría haber un problema al recuperarlo.

    Asegúrate de que el nombre de connectionString en el archivo de configuración coincida con el nombre que estás utilizando para recuperarlo en el código. En tu caso, el nombre es “DefaultConnection”.

    También asegúrate de que el archivo de configuración se esté cargando correctamente. Puedes poner un punto de interrupción en la línea “var connectionString = builder.Configuration.GetConnectionString(“DefaultConnection”);” y comprobar si la variable connectionString se está llenando correctamente.

    Si todo parece estar en orden, intenta reconstruir la solución y borrar la caché.

    Si el problema persiste, puedes intentar especificar la connectionString directamente en el archivo appsettings.json en lugar de en la sección de registro.

    Una vez que hayas resuelto el problema, deberías poder ejecutar el comando “add-migration” sin errores.

Comments are closed.