Obtener LAST_INSERT_ID de la transacción

asp.net-mvc asp.net-mvc-5 dapper

Pregunta

Tengo el siguiente código:

                using (MySqlConnection connection = new MySqlConnection(this.connectionString))
                {
                    connection.Open();
                    using (MySqlTransaction transaction = connection.BeginTransaction())
                    {
                        var r = connection.Execute(@"INSERT INTO tableA (`listId`, `parentListId`, `name`, `userId`)
                            VALUES
                            (NULL, @parentListId, @name, @userId);

                            INSERT INTO `tableA_misc` (`listId`, `userId`, `permissions`)
                            VALUES
                            (LAST_INSERT_ID(), @ownerId, 'Read');

                            SELECT CAST(LAST_INSERT_ID() AS UNSIGNED INTEGER);",
                        new {
                            parentListId = _parentListId,
                            name = _name,
                            userId = _currentUser.user_id
                        }, transaction);
                        transaction.Commit();
                    }
                }

¿Cómo puedo recuperar the LAST_INSERT_ID() ya que r solo devuelve el número de filas que se insertaron?

Gracias

Respuesta aceptada

Cambiarlo a esto fijo:

 using (MySqlConnection connection = new MySqlConnection(this.connectionString))
                {
                    connection.Open();
                    using (MySqlTransaction transaction = connection.BeginTransaction())
                    {
                        var lastId = connection.Query<int>(@"INSERT INTO tableA (`listId`, `parentListId`, `name`, `userId`)
                            VALUES
                            (NULL, @parentListId, @name, @userId);

                            INSERT INTO `tableA_misc` (`listId`, `userId`, `permissions`)
                            VALUES
                            (LAST_INSERT_ID(), @ownerId, 'Read');

                            SELECT CAST(LAST_INSERT_ID() AS UNSIGNED INTEGER);",
                        new {
                            parentListId = _parentListId,
                            name = _name,
                            userId = _currentUser.user_id
                        }, transaction);
                        transaction.Commit();
                    }
            }


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é