.NET SqlConnection y SqlCommand

.net dapper sql sqlcommand sqlconnection

Pregunta

Utilizo las clases SqlConnection y SqlCommand en mi proyecto con Dapper ORM, pero tengo un problema extraño. Cuando uso SqlCommand para insertar una fila en una tabla db siempre funciona correctamente y cuando selecciono tablas de formulario de datos actualizadas, todo está bien, pero después de cerrar los cambios en la aplicación, no se confirma como datos guardados en alguna memoria caché. Por ejemplo, creé una tabla simple con solo dos columnas (UserId (PK) y UserName (Unique)) e incluso en ese caso los cambios no se guardan. Estoy usando el siguiente código para insertar una fila:

using (SqlConnection c = new SqlConnection(Settings.Default.UsersConnectionString))
        {
            c.Open();


            using (SqlCommand d = new SqlCommand())
            {
                d.CommandText = "INSERT INTO Users (UserName) VALUES ('SomeName')";
                d.CommandType = System.Data.CommandType.Text;
                d.Connection = c;
                int t = d.ExecuteNonQuery();
            }


            c.Close();
        }

Respuesta popular

Este código en dapper debería ser:

var name = "SomeName";
int t  = c.Execute("INSERT INTO Users (UserName) VALUES (@name)", new {name});

Dapper no tiene administración interna de transacciones, debe pasarse usando el parámetro de transacción opcional.

Mi instinto me dice que te estás conectando a un db diferente para insertar los datos. O el material de transacción implícita de Damiens, que es fácil de validar.



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é