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

Tabla de Entidades de HTML

Comandos de GIT