Consultas en bruto con Entity Framework

El problema

Hacer una consulta a la base de datos antes de que se inicie nuestra aplicación de Blazor, (aunque también se puede aplicar fácilmente a una versión de consola). Necesito hacer una consulta a la base de datos para obtener un string, es un cambio trivial que de otra forma hubiera requerido un mapeado y un problema con QA. Lo pongo aquí porque estoy seguro que no será la única vez que lo vaya a necesitar.

Creamos el escalar

public class ScalarString { 
    public string Value { get; set; } = default!; 
}

Creamos la clase que maneja la conexión a BD

public class DBDirectAccess : DbContext
{
    protected readonly string _connectionString = string.Empty;

    public DBDirectAccess(string connectionString)
    {
        _connectionString = connectionString;
    }
    
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer(_connectionString);
    }
}

Y Finalmente hacemos la consulta

Cabe mencionar que la consulta debe de regresar un Value para llenar la clase escalar.
using (DBDirectAccess db = new DBDirectAccess(builder.Configuration.GetConnectionString("SQLServer_Connection")!))
{
    ScalarString? url = await db.Database.SqlQueryRaw<ScalarString>($"SELECT Url as Value FROM TB_URLS WHERE HUMAN_ID = 'HOST'").SingleOrDefaultAsync();
}

Comentarios

Entradas más populares de este blog

Agregar o eliminar usuarios en Windows desde la consola (y quitar la expiración de contraseña)

Instalar múltiples Sistemas Operativos con una sola memoria USB con Ventoy

Speedtest CLI, para generar un JSON de prueba de descargas y subidas