거래

2016-08-08 3 views
0

에서 LAST_INSERT_ID 얻기 나는 다음과 같은 코드가 있습니다거래

   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(); 
        } 
       } 

가 어떻게 r 이후 the LAST_INSERT_ID() 만 삽입 된 행의 수를 반환 검색 할 수 있습니까?

+1

이 .Execute를가 가, 그래, 그 일을 @VoidRay –

+0

.Query을 변경해보십시오. 감사 – Cornwell

답변

0

이 고정으로 변경 감사 :

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(); 
        } 
      }