cómo minimizar el uso de instrucciones en los comandos de conexión sql db de la clase de ayuda C #

c# dapper

Pregunta

Actualmente, sigo escribiendo el siguiente código cada vez que tengo una declaración de selección simple en mi página de ayuda de c #.

using (var ctx = new MyDBContext())
    {
        using (var cmd = (SqlCommand)ctx.Database.Connection.CreateCommand())

Descubrí una forma más limpia de escribir esto para la actualización, pero no puedo hacerlo funcionar con select. Esto es lo que hice para actualizar:

using (var ctx = new MyDBContext())
  {
   await ctx.Database.ExecuteSqlCommandAsync(@"UPDATE PO SET ESD = @ESD WHERE PoNumber = @PoNumber",new SqlParameter("ESD", (object)ESD ?? DBNull.Value), new SqlParameter("PoNumber", PoNumber));}
   }

y esto es lo que intento para Select, pero no funciona

using (var ctx = new MyDBContext())
        {
            string sqlQuery ="SELECT * FROM POStages WHERE PoNumber = @PoNumber";
           poStages =  await ctx.Database.SqlQuery((sqlQuery
                ,new SqlParameter("PoNumber", PoNumber)).ToListAsync(); 
        }

Respuesta aceptada

SqlParameter debe ser @PoNumber.

Aquí está la sintaxis correcta, ambos son válidos

await ctx.Database.SqlQuery(
    typeof(DAL.Models.POStages),
    sqlQuery, 
    new SqlParameter("@PoNumber", PoNumber)).ToListAsync();

o

await ctx.Database.SqlQuery<DAL.Models.POStages>(            
        sqlQuery, 
        new SqlParameter("@PoNumber", PoNumber)).ToListAsync();


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué